Rails - 自定义帮助器使用fields_for重复代码

时间:2012-08-22 21:27:16

标签: ruby-on-rails ruby-on-rails-3

我在application.rb文件中创建了一个自定义帮助器,如下所示:

module ApplicationHelper

  def add_feature_field(feature_type, object_form_builder, actions_visible)
    object_form_builder.object.features.build
    fields = object_form_builder.fields_for :features do |features_builder|
      render :partial => "features/fixed_feature", :locals => {:feature => features_builder, :fixed_feature_type => feature_type, :form_actions_visible => actions_visible}
    end
 end
end

我从我的观点中这样称呼这个帮助:

<%= add_feature_field("First Name", customer, false) %>
<%= add_feature_field("Last Name", customer, false) %>
<%= add_feature_field("Date of Birth", customer, false) %>

除了一个主要障碍之外,这正如预期的那样工作:第二次调用帮助器时,它渲染2个字段而不是单个字段,第三次渲染3个字段。

我认为发生的事情是我的助手中的fields_for循环正在拾取以前构建的对象,并且还渲染那些 - 有人可以提出一种方法来阻止这种情况吗?

编辑:为了清楚起见,根据评论,这个帮助方法正在客户表单中使用;正在创建的功能是嵌套属性。

0 个答案:

没有答案