【发布时间】:2010-10-13 23:35:10
【问题描述】:
我正在尝试使用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)并在视图中访问它。
我怎么能这样做?欢迎任何关于更好实施的建议。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 activeview