主动管理员有很多关系问题

时间:2015-07-17 19:56:03

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

我有3个模特

Fruit.rb

has_many :seeds, through :fruit_seed

has_many :fruit_seeds

Seed.rb

has_many :fruits, through :fruit_seed

has_many :fruit_seeds

fruit_seed.rb

belongs_to :fruit

belongs_to :seed

水果种子表中的字段(fruit_id,seed_id)

为fruit_seed

创建了有效的管理资源

在默认情况下,我可以从下拉菜单中选择一个水果,一个种子并保存。

但我需要保存一个水果has_many种子(将种子列表保存为联合表水果种子中的数组),这意味着多选择保存种子数组。

探索官方文档但不能解决。

1 个答案:

答案 0 :(得分:0)

fruit.rb 文件中的

accepts_nested_attributes_for :seeds, allow_destroy: true

然后在activeadmin的fruit.rb文件格式中

form do |f|
    f.semantic_errors *f.object.errors.keys
    f.inputs "Fruit attributes" do
      f.input :title
      # your fruit model attributes
    end
    f.inputs "Fruit seeds" do
      f.has_many :seeds do |s|
        s.input :seed_name # whatever you want to take as input
      end
    end
    f.actions
end

如果您使用的是rails 4+,则会出现强参数问题。在这种情况下,请在activeadmin的permit_params文件中使用fruit.rb

permit_params :fruit_name, seeds_attributes: [:id, :seed_name, :_destroy, :fruit_id]