1

我有以下和部分设置,但我不断收到错误,部分无法识别变量 |builder|。

形式

<%= simple_form_for @firm  do |f| %>

<%= f.fields_for :events do |builder| %>
          <%= render 'event_fields', :builder => builder  %>
  <% end %>

<%= end %>

_events_fields 部分

<fieldset>
<%= builder.input :name, :collection => ['Applications Open', 'Applications Close', 'Traineeship Starts'] %>
<%= builder.text_field :start_at, :class => 'datepicker' %>
<%= builder.hidden_field :all_day, :value => true %>
<%= link_to "remove", '#', class: "remove_fields" %>

知道我应该如何填充变量吗?或者如果事实上这是正确的做法?如果有人可以帮助我更多地了解您需要如何以及为什么需要这样做,那将非常有帮助。

4

2 回答 2

3

您需要告诉它这是一个局部视图并将哈希传递给 locals 选项。像这样:

<%= simple_form_for @firm  do |f| %>
    <%= f.fields_for :events do |builder| %>
        <%= render partial: 'event_fields', locals: {builder: builder} %>
    <% end %>
<% end %>

如果您使用的是 Ruby 1.8,那么:

<%= simple_form_for @firm  do |f| %>
    <%= f.fields_for :events do |builder| %>
        <%= render :partial => 'event_fields', :locals => { :builder => builder } %>
    <% end %>
<% end %>
于 2012-05-13T17:34:27.917 回答
0

partial_name将替换为实际的部分名称或部分名称与目录名称。

我们将data_object对象提供给partial,在partial中的局部变量下可用,data_variable相当于:

<%= render partial: "partial_name", locals: { data_variable: data_object } %>
于 2015-06-16T13:48:42.483 回答