在 activeadmin 中编辑父记录的关系

Edit relationship of parent record in activeadmin

我有以下模型结构:

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 中,我希望能够编辑 countries 的组合,但是 in分数.

当然,表单将从作文中导入此数据,并且作文的所有分数(子级)的默认输入都相等。

到目前为止,我还没有找到在 activeadmin 中实现它的方法。

这可能吗?如果是,解决方案简单还是麻烦?

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

如果有更清洁的解决方案,请告诉我。