Tengo una pregunta de dos partes sobre form_for y recursos anidados. Digamos que estoy escribiendo un motor de blog y quiero relacionar un comentario con un artículo. He definido un recurso anidado de la siguiente manera:
map.resources :articles do |articles|
articles.resources :comments
end
El formulario de comentarios se encuentra en la vista show.html.erb para artículos, debajo del artículo en sí, por ejemplo, así:
<%= render :partial => "articles/article" %>
<% form_for([ :article, @comment]) do |f| %>
<%= f.text_area :text %>
<%= submit_tag "Submit" %>
<% end %>
Esto da un error, "Se llamó id para nil, que sería erróneamente etc." También he intentado
<% form_for @article, @comment do |f| %>
Que se procesa correctamente pero relaciona f.text_area con el campo 'texto' del artículo en lugar de los comentarios, y presenta el html para el atributo article.text en esa área de texto. Así que parece que también me equivoco. Lo que quiero es un formulario cuyo 'envío' llamará a la acción de creación en CommentsController, con un id_artículo en los parámetros, por ejemplo, una solicitud de publicación a / articles / 1 / comments.
La segunda parte de mi pregunta es, ¿cuál es la mejor manera de crear la instancia de comentario para empezar? Estoy creando un @comment en la acción show del ArticlesController, por lo que un objeto de comentario estará dentro del alcance de form_for helper. Luego, en la acción de creación de CommentsController, creo un nuevo @comment usando los parámetros pasados desde form_for.
¡Gracias!