У мене є двоскладове запитання про 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 %>
Це дає помилку: "Викликається ідентифікатор для нуля, який би помилково і т.д." Я також пробував
<% form_for @article, @comment do |f| %>
Він відображає правильно, але стосується f.text_area до поля "текст" статті замість коментаря та представляє html для атрибута Article.text у цій текстовій області. Тому я, мабуть, маю і це неправильно. Мені хочеться - це форма, "надіслати", буде викликати дію створення на CommentsController, зі статтею_id у парамах, наприклад, запитом на публікацію до / articles / 1 / comments.
Друга частина мого питання полягає в тому, з чого найкращий спосіб створити екземпляр коментарів для початку? Я створюю @comment у показовій дії ArticleController, тому об’єкт коментаря буде доступний для помічника form_for. Потім у дії на створення CommentsController я створюю новий @comment, використовуючи парами, передані з form_for.
Дякую!