具有双嵌套的ActiveAdmin表单

时间:2014-07-08 14:29:15

标签: ruby-on-rails ruby-on-rails-4 activeadmin

我有以下型号:

class Price < ActiveRecord::Base
  has_many :meta_price_informations
  has_many :zone_price_informations, through: :meta_price_informations
  has_many :general_price_informations, through: :meta_price_informations

  accepts_nested_attributes_for :meta_price_informations
end

class MetaPriceInformation < ActiveRecord::Base
  belongs_to :price
  has_one :general_price_information
  has_one :zone_price_information

  accepts_nested_attributes_for :general_price_information, :zone_price_information
end

class ZonePriceInformation < ActiveRecord::Base
  belongs_to :meta_price_information

  validates :label, length: { in: 3..50 }
end

class GeneralPriceInformation < ActiveRecord::Base
  belongs_to :meta_price_information

  validates :label, length: { in: 3..5a0 }
  validates :helper, length: { in: 0..50 }
end

现在我希望能够在active-admin中创建一个价格模型,并根据需要添加尽可能多的ZonePriceInformations和GeneralPriceInformation,并为每个选项设置位置

form do |f|
  f.inputs do
    f.input :valid_from
  end
  f.inputs "Sone baserte priser" do
    f.has_many :meta_price_informations, allow_destroy: true, new_record: true do |m|
      m.inputs do
        m.input :position
        m.semantic_fields_for :zone_price_information do |zone|
          zone.input :label
        end
      end 
    end
  end

这不起作用。我还尝试了m.inputs代替m.semantic_fields_for而没有效果。还尝试了m.inputs :label, for: :zone_price_information,它也没有做任何事情。

任何人都知道我能做什么?

1 个答案:

答案 0 :(得分:1)

遗憾的是,在f.has_many区块中,您只能使用一个直接加入Price模型的模型。因此,您必须创建一个包含要在has_many表单中设置的所有属性的模型。该模型应该与Price和has_many相关联。