Получить имя родительского ресурса при работе с вложенным ресурсом - PullRequest
0 голосов
/ 02 июня 2011

У меня есть контроллер комментариев, который использует частичную форму для добавления комментариев.Теперь этот контроллер вложен в любой родительский ресурс, который должен иметь комментарии.

resource :post do
  resource :comments
end
resource :poll
  resource :comments
end

Если я хочу иметь частичную форму, которая автоматически настраивается для соответствующего ресурса, как бы я это сделал?

Сейчас я должен настроить формы на странице вложенного ресурса следующим образом:

<% = form_for [@post, @comment] do | f |%> <% = f.label: title%><% = f.text_field: title%> <% = f.label: body%><% = f.text_area: body%> <% = f.submit%> <% end%>

Я хотел бы получить партиал, похожий на приведенный выше код, но который я могу просто вызвать <%= render 'comments/form' %>

Есть какие-нибудь идеи о том, как это сделать?

1 Ответ

1 голос
/ 02 июня 2011

Вы можете решить эту проблему, передав локальную переменную частичному комментарию, используя хэш localals:

В вашем вложенном ресурсе, скажем, просмотр сообщения:

<%= render 'comments/form', :locals => {:resource => @post} %>

Форма ваших комментариев:

<%= form_for [resource, @comment] do |f| %>
  <%= f.label :title %> 
  <%= f.text_field :title %> <%= f.label :body %>  
  <%= f.text_area :body %> <%= f.submit %>
<% end %>

Кроме того, я призываю вас пройти это руководство по частям , где объясняются подробности.

...