2014-02-07 45 views
0

我有一個雙重嵌套的資源評論屬於答案,答案屬於問題。我試圖創建你如何創建一個雙重嵌套模型?

def create 
    @answer = Answer.find(params[:answer_id]) 
    @comment = @answer.comments.create(params[:comment]) 
    redirect_to question_path(@question) 
end 

評論從這樣的形式:

form_for([@answer, @answer.comments.build]) 

不過,我發現了一個undefined method error for render @answer.comments。我的創建動作是否錯誤?

編輯:我有關聯,例如,回答的has_many的意見,並回答belongs_to的和對資源的嵌套路由文件發表評論..

+0

你有'的has_many:在'Answer'模型中定義comments'關聯? – usha

回答

0

你可能想重構,所以你沒有做構建的邏輯在視圖中的評論。

構建在controller#new行動的形式註釋,然後

form_for [@answer, @comment] 
+0

你是不是在視圖中構建評論意味着什麼?我以爲我已經在控制器中構建了一個評論作爲實例變量,並在表單中使用answers.build.comment來確保評論與答案相關聯?這就是我從rails教程中得到的,但我是新的,所以我可能會誤解它! – google1254

0

首先。 爲了使用@你需要有

has_many :comments 
在answer.rb

(模型)answer.comments

+0

對不起,忘了提及我已經有這些協會! – google1254

+0

第二件事,你正在構建一個form_for一個對象和一個方法...應該是2個對象。 –