2013-01-11 82 views
0

創建相關記錄我有3個表:的Rails在控制器

項目

has_many :answers 

問題 - >問題,每個項目都必須回答

has_many :answers 

回答

belongs_to :project 

belongs_to :question 

所以,當我crea如果是新項目,我想循環回答問題並創建答案記錄。然後用戶可以看到所有的問題並輸入他們的答案。

在項目負責人,我試圖創造的記錄。 但是,下面不工作:

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 

謝謝!

回答

2

相反的:

Questions.each 

務必:

Question.all.each 

所有的代碼都需要在項目模式,而不是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 
+0

謝謝!效果很好。 – Reddirt