我有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种子(将种子列表保存为联合表水果种子中的数组),这意味着多选择保存种子数组。
探索官方文档但不能解决。
答案 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]