У меня две модели: На странице много разделов. Я не использую вложенные ресурсы, потому что есть еще и третья модель. На моей странице # show у меня есть ссылка для создания нового раздела, принадлежащего текущей странице:
<%= link_to 'New Section', new_section_path(:page_id => @page) %>
И в моей форме сечения у меня есть:
<%= form_for(@section) do |f| %>
.
.
.
<div class="field">
<%= f.label :title %><br />
<%= f.text_field :title %>
</div>
<%= f.hidden_field :page_id, :value => params["page_id"] %>
<div class="actions">
<%= f.submit %>
</div>
Проблема, конечно, в том, что это правильно передает page_id в новую форму раздела, но когда пользователь возвращается к форме через путь редактирования, params ["page_id"] пуст. Я хотел бы установить page_id один раз при создании и никогда больше не позволять его изменять (возможно, есть способ создать условие, которое удаляет это скрытое поле из формы, или еще более чистый способ?).
Большое спасибо за Вашу помощь.
<%= f.hidden_field(:page_id, :value => params["page_id"]) if params.has_key?(:page_id)%>
- person Зелёный   schedule 05.11.2013