1

我在那里我使用加载ActiveModel对象用于验证一些通用领域的一个复杂的形式:nested_form:所有添加的字段具有相同的名称

class FormReportPivot 
    include ActiveModel::Validations 
    include ActiveModel::Conversion 
    extend ActiveModel::Naming 

    attr_accessor :name, :pages, :columns, :rows, :table, 
    :pages_aggregation, :columns_aggregation, :rows_aggregation, :table_aggregation 

    def initialize(attributes = {}) 
    attributes.each do |name, value| 
     public_send("#{name}=", value) 
    end 
    end 

    def persisted? 
    false 
    end 

    end 

我对这个领域nested_form:

= f.simple_fields_for :pivots do |pivots_builder| 
    = render :partial => 'pivot_fields', :locals => { :pivots_builder => pivots_builder } 
    = f.link_to_add "Add pivot", :pivots, model_object: FormReportPivot.new, class: "btn blue" 

部分:

= pivots_builder.input :name, input_html: {:class => "m-wrap"}, 
    placeholder: t('.name') 
    = pivots_builder.input :columns, collection: @form_report.columns_collection, :include_blank => false, input_html: {:class => "m-wrap chosen", multiple: true} 
    = pivots_builder.input :rows, collection: @form_report.columns_collection, :include_blank => false, input_html: {:class => "m-wrap chosen", multiple: true} 
    = pivots_builder.input :table, collection: @form_report.columns_collection, :include_blank => false, input_html: {:class => "m-wrap chosen", multiple: true} 
    = pivots_builder.input :table_aggregation, collection: FormReport::AGGREGATING_FUNCTIONS, :include_blank => false, input_html: {:class => "m-wrap chosen"} 

但是当我点击“添加转动”我得到相同的网络连接视场与同名同身份证件和无时间戳:

<input class="string optional m-wrap m-wrap" 
id="form_report_pivots_attributes_name" 
name="form_report[pivots_attributes][name]" placeholder="" title=""> 

回答

1

就包括fields_for:在fields_for new_pivots:枢轴 和嵌套表格替换右时间戳new_pivots:

形式:

= f.simple_fields_for :pivots do |pivots_builder| 
    = render :partial => 'pivot_fields', :locals => { :f => pivots_builder } 
    = f.link_to_add "Add pivot", :pivots, model_object: FormReportPivot.new, class: "btn blue" 

部分:

.well 
    = f.simple_fields_for :new_pivots do |pf| 
     = pf.input :name, input_html: {:class => "m-wrap"}, 
     placeholder: t('.name') 
     = pf.input :columns, collection: @form_report.columns_collection, :include_blank => false, input_html: {:class => "m-wrap chosen", multiple: true} 
     = pf.input :rows, collection: @form_report.columns_collection, :include_blank => false, input_html: {:class => "m-wrap chosen", multiple: true} 
     = pf.input :table, collection: @form_report.columns_collection, :include_blank => false, input_html: {:class => "m-wrap chosen", multiple: true} 
     = pf.input :table_aggregation, collection: FormReport::AGGREGATING_FUNCTIONS, :include_blank => false, input_html: {:class => "m-wrap chosen"} 
+0

Lifesaver。不知道为什么这是必要的,但哇它完全解决了我的问题,谢谢! –

相关问题