Я пытаюсь настроить довольно сложную форму, используя form_for
. Эта форма должна находиться в нескольких представлениях, где некоторые поля будут доступны для всех действий, а другие - для каждого отдельного действия.
Я думал, что для того, чтобы сэкономить дублирование кода, я использовал бы макет для отображения общей части, например:
# layout.html.erb
<%= form_for @instance do |f| %>
<%= f.text_field :foo %><!-- This field needs to be available in all views -->
<...><!-- Additional non-form related html -->
<%= yield %>
<%= f.submit %>
<% end %>
# first_view.html.erb
<% f.fields_for :bar do |b| %>
<%# Fields %><!-- These fields should only be available in first_view -->
<% end %>
# second_view.html.erb
<% f.text_field :baz %><!-- This field should only be available in second_view -->
Теперь проблема в том, что я не могу передать f
как локальную переменную из макета в представление. Я даже не могу установить переменную экземпляра (например, @f = f
) и получить доступ к ней в представлениях.
Как я мог это сделать? Любые предложения по улучшению реализации приветствуются.