form_for с вложенными ресурсами

У меня есть вопрос из двух частей о form_for и вложенных ресурсах. Допустим, я пишу блог-движок и хочу связать комментарий со статьей. Я определил вложенный ресурс следующим образом:

map.resources :articles do |articles|
    articles.resources :comments
end

Форма комментария находится в представлении show.html.erb для статей под самой статьей, например, вот так:

<%= render :partial => "articles/article" %>
<% form_for([ :article, @comment]) do |f| %>
    <%= f.text_area :text %>
    <%= submit_tag "Submit" %>
<%  end %>

Это выдает ошибку «Called id for nil, что по ошибке и т. Д.» Я также пытался

<% form_for @article, @comment do |f| %>

Правильно отображает, но связывает f.text_area с полем text статьи вместо комментария и представляет html для атрибута article.text в этой текстовой области. Так что, похоже, я тоже ошибаюсь. То, что мне нужно, это форма, чья 'submit' будет вызывать действие create в CommentsController, с article_id в params, например, запросом на публикацию в / article / 1 / comments.

Вторая часть моего вопроса: как лучше всего начать создавать экземпляр комментария? Я создаю @comment в действии show ArticlesController, поэтому объект комментария будет находиться в области видимости для помощника form_for. Затем в действии create для CommentsController я создаю новый @comment, используя параметры, переданные из form_for.

Спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос