我有3张桌子:
项目
has_many :answers
问题 - >每个项目必须回答的问题
has_many :answers
答案
belongs_to :project
belongs_to :question
因此,当我创建一个新项目时,我想循环遍历问题并创建答案记录。然后,用户可以看到所有问题并输入他们的答案。
在项目控制器中,我正在尝试创建这些记录。 但是,以下是行不通的:
before_create :create_answers
protected
def create_answers
Questions.each do |i|
self.answers.build contact_id: self.contact_id, question_id: Question[i].id
end
end
感谢!!!
答案 0 :(得分:2)
而不是:
Questions.each
执行:
Question.all.each
所有代码都需要在Project模型中,而不是ProjectsController。
而不是:
Question[i].id
执行:
i.id
确保这些属性也是attr_accessible
。
所有在一起:
before_create :build_answers
protected
def build_answers
Question.all.each do |question|
answers.build contact_id: contact_id, question_id: question.id
end
end
attr_accessible位:
attr_accessible :contact_id, :question_id