我有一个使用semantic_form_for标记的编辑页面
<%= semantic_form_for @photog do |f| %>
表单变得越来越长,我想将其分解为多个部分,以便视图更具可读性。
我正在尝试在edit.html.erb模板中创建部分内容,例如
<%= render 'favorite_things', locals: {f: f} %>
这段代码打破了说法 未定义的局部变量或方法`f'用于#&lt;#:0x007ff5a110abf0&gt;
我需要了解如何传递f对象,以便部分可以读取它和像f.input这样的东西
<!-- favorite things partial -->
<div class='edit_photog_header'>A List Of Your Favorites</div>
<%= f.input :fav_lens, :label => "Lens" %>
<%= f.input :fav_camera, :label => "Camera" %>
[and so on]
由于
答案 0 :(得分:7)
locals
时 render partial
。
<%= render partial: path_to_partial, locals: locals_hash %>
如果您只是使用render
,则应该这样做:
<%= render path_to_view, locals_hash %>
在你的情况下会是:
<%= render 'favorite_things', f: f %>