0

我有 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

谢谢!!!

4

1 回答 1

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
于 2013-01-11T19:54:29.067 回答