在 activeadmin 中编辑父记录的关系
Edit relationship of parent record in activeadmin
我有以下模型结构:
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 中,我希望能够编辑 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
如果有更清洁的解决方案,请告诉我。
我有以下模型结构:
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 中,我希望能够编辑 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
如果有更清洁的解决方案,请告诉我。