Я уверен, что это распространенная проблема, но она меня озадачила.Рельсы: Has_many через, вложенные флажки и проверка присутствия
У меня есть has_many: через стол на модели 'Шаг':
has_many :questions, :through => :question_step
Это question_step модели присутствия валидаторы на question_id и step_id поля:
validates_presence_of :question_id, :step_id
И есть флажки, что определить, какие вопросы относятся к тому, какой этап
td= check_box_tag "step[question_ids][]", question.id, @step.question_ids.include?(question.id)
Теперь это работает просто отлично, за исключением случаев, когда я хочу добавить вопросы на новый шаг. Поскольку step_id пуст, модель question_step не выполняет проверку. Он отлично работает, если я удаляю аргумент validate_presence_of: step_id в модели question_step, но я на самом деле do хочу убедиться, что существует step_id.
Я уверен, что это распространенная проблема. ...Есть предположения?
Изучите [accepts_nested_attributes_for] (http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html#M002132) и его параметр reject_if. Также проверьте [этот рельс] (http://railscasts.com/episodes/196-nested-model-form-part-1) – weltschmerz
Возможно, вам придется добавить inverse_of к вашим моделям – Swards