form_for z zagnieżdżonymi zasobami

Mam dwuczęściowe pytanie o form_for i zagnieżdżone zasoby. Powiedzmy, że piszę silnik blogów i chcę odnieść komentarz do artykułu. Zdefiniowałem zasób zagnieżdżony w następujący sposób:

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

Formularz komentarza znajduje się w widoku show.html.erb artykułów, pod samym artykułem, na przykład w ten sposób:

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

Daje to błąd „Wywoływany identyfikator dla zera, który błędnie itp.” Próbowałem też

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

Który renderuje poprawnie, ale odnosi f.text_area do pola „text” artykułu zamiast komentarza, i prezentuje html dla atrybutu article.text w tym obszarze tekstowym. Więc wydaje mi się, że mam to źle. To, czego chcę, to formularz, którego „submit” wywoła akcję create na CommentsController, z artykułem article_id w params, na przykład żądanie postu do / articles / 1 / comments.

Druga część mojego pytania brzmi: jaki jest najlepszy sposób na utworzenie instancji komentarza? Tworzę komentarz @ w akcji show kontrolera ArticlesController, więc obiekt komentarza będzie w zasięgu pomocnika form_for. Następnie w akcji tworzenia kontrolera komentarzy, tworzę nowy @komment, używając parametrów przekazanych z formularza_dla.

Dzięki!

questionAnswers(3)

yourAnswerToTheQuestion