我具有以下模型结构:
Composition
有很多Score
(Score
属于Composition
)Composition
拥有并属于许多Countries
(反之亦然)score.rb :
class Score < ApplicationRecord
belongs_to :composition
end
composition.rb :
class Composition < ApplicationRecord
has_many :scores
has_and_belongs_to_many :countries, join_table: :rights_countries
end
country.rb :
class Country < ApplicationRecord
has_and_belongs_to_many :compositions, join_table: :rights_countries
end
在activeadmin中,我希望能够编辑乐曲的国家/地区,但可以以分数的编辑形式。 / p>
当然,表单将从合成中导入此数据,并且默认输入对于合成的所有分数(子级)都是相等的。 到目前为止,我发现没有办法在activeadmin中实现它。 这甚至可能吗?如果是,该解决方案简单还是麻烦?
答案 0 :(得分:0)
在this link之后,我在inputs
内添加了inputs
并更新了相应的参数。我还在得分模型中添加了accepts_nested_attributes_for :composition
。
app / models / score.rb
...
accepts_nested_attributes_for :composition
...
app / admin / score.rb
...
permit_params ...,
composition_attributes: [:id, country_ids: []]
...
form do |f|
f.inputs do
...
f.inputs "", for: [:composition, score.composition] do |c|
c.input :countries, as: :select, collection: Country.order_by_name.uniq.map { |p| [p.name, p.id] }
end
end
end
让我知道是否有更清洁的解决方案。