У меня проблема с вложенной формой.
Модели:
class UserAnswer < ActiveRecord::Base
belongs_to :user_questions
belongs_to :question
validates :user_question_group, presence: true
validates :question, presence: true
validates :answer, presence: true
end
и другая:
class UserQuestionGroup < ActiveRecord::Base
belongs_to :user
has_many :user_answers, dependent: :destroy
accepts_nested_attributes_for :user_answers, :reject_if => lambda { |a| a[:answer].blank? }
validates :user_id, presence: true
end
Итак, я создаю вопросв контроллере:
def new
@user_question_group = UserQuestionGroup.new(user_id: current_user.id)
QuestionGroup.all.each do |ag|
ag.questions.each do |a|
@user_question_group.user_questions.build(questions_id: a.id)
end
end
end
Что работает, что я вижу, когда просто проверяю: @ user_question_group.user_questions.Я вижу все вопросы.
Но когда я на самом деле хочу показать форму, она показывает только одну форму для вопроса, и она даже пуста, даже если question_id должен иметь число.
...
<%= form_for(@user_question_group, :url => user_user_question_groups_path(@current_user)) do |f| %>
<%= f.hidden_field :user_id %>
<%#= @user_question_group.user_questions.inspect %>
<%= fields_for :user_questions do |fa| %>
<p>
<%= fa.label :question_id %>
<%= fa.text_field :question_id %>
</p>
<p>
<%= fa.label :answer %>
<%= fa.text_field :answer %>
</p>
<% end %>
...
Кто-нибудь знает, что не так с моей формой?