Изменить отношение родительской записи в activeadmin - PullRequest
0 голосов
/ 10 апреля 2019

У меня следующая структура модели:

  • Composition имеет много Score (Score принадлежит Composition)
  • Composition имеет и принадлежитмногие Countries (и наоборот)

score.rb :

class Score < ApplicationRecord
  belongs_to :composition
end

position.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 я хочу иметь возможность редактировать стран композиции, но в форме редактирования своих баллов .

Конечно, форма будет импортировать эти данные из композиции, и входные данные по умолчанию будут равны для всех баллов (дочерних элементов)состав.

До сих пор я не нашел способа реализовать это в activeadmin.

Возможно ли это вообще?Если да, то решение простое или громоздкое?

1 Ответ

0 голосов
/ 10 апреля 2019

После этой ссылки я добавил 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

Дайте мне знать, если есть более чистое решение.

...