Rails将对象传递到部分表单

时间:2019-11-07 01:31:34

标签: ruby-on-rails-5 partials

rails 5ruby 2.5

我正在尝试一些新的东西。在我看来,这是有道理的,但没有用。我想在我的<form>new视图上放置一个edit标签,然后调用具有其余形式的局部视图。我正在使用f传递“实例变量”(正确的术语?):locals,但是在局部变量中却无法识别。

# new.html.erb

<% @page_title = "New Food Entry" %>

<%= form_for(@food) do |f| %>

  <%= render "form", :locals => { :f => f  } %> 

<% end %>
# _form.html.erb

<table cellpadding="2" cellspacing="0" style="border: 1px solid #369;" summary="Edit or new Food Record">

  <tr>                                                                        
    <td><label>Food Name</label></td>                                                   
    <td><%= f.text_field :food_item, :size => 30 %></td>
  </tr>
...

当我加载... / foods / new时,出现此错误:

undefined local variable or method `f' for #<#<Class:0x00007fdb4c036428>:0x00007fdb342a3890

任何提示将不胜感激。

1 个答案:

答案 0 :(得分:1)

根据Rails docs。请使用<%= render partial: "form", :locals => { :f => f } %><%= render "form", :f => f %>语法。