を使用してかなり複雑なフォームを設定しようとしてい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
) を設定して、ビューでアクセスすることさえできません。
どうすればこれを行うことができますか? より良い実装のための提案は大歓迎です。