我有以下内容和部分设置,但我继续收到错误,部分无法识别变量| builder |。
表格
<%= simple_form_for @firm do |f| %>
<%= f.fields_for :events do |builder| %>
<%= render 'event_fields', :builder => builder %>
<% end %>
<%= end %>
_events_fields partial
<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" %>
任何想法我应该如何填充变量?或者,如果事实上这是正确的做法吗?如果有人可以帮助我更多地了解你需要如何以及为什么需要这样做,那将是非常有帮助的。
答案 0 :(得分: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 %>
答案 1 :(得分:0)
partial_name
将替换为具有目录名称的实际部分名称或部分名称。
我们会将data_object
对象提供给partial,在partial中的局部变量data_variable
下可用,并且相当于:
<%= render partial: "partial_name", locals: { data_variable: data_object } %>