2014-02-07 3 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. Не работает ли мое действие?

EDIT: У меня есть ассоциации, такие как, ответить HAS_MANY комментарии и комментарии belongs_to ответа и вложенной файл маршрутизации для ресурсов ..

+0

У вас есть 'has_many: comments' объединение определяется в' Answer' модели? – usha

ответ

0

Вы, вероятно, хотите, чтобы реорганизовать таким образом вы не делаете логику построения комментарии в представлении.

Построить комментарий в controller#new действий для формы, а затем

form_for [@answer, @comment] 
+0

Что вы имеете в виду, не комментируя комментарий в представлении? Я думал, что я создал комментарий в контроллере как переменную экземпляра и в форме, я использую answer.build.comment, чтобы убедиться, что комментарии связаны с ответом? это то, что я получил из учебника по рельсам, но я новичок, поэтому я, возможно, неправильно понял его! – google1254

0

Первого первое. Для того, чтобы использовать @ answer.comments вам нужно иметь

has_many :comments 

в вашем answer.rb (модель)

+0

извините, забыли упомянуть, что у меня уже есть ассоциации! – google1254

+0

Вторая вещь, вы строите form_for объекта и метода ... Должно быть 2 объекта. –

Смежные вопросы