Я работаю над созданием has_many: через отношения в активном админе. Вот модели, как они стоят:ActiveAdmin has_many через отношения, не обновляющие param Rails
class Category < ActiveRecord::Base
has_many :subcategories
end
class Subcategory < ActiveRecord::Base
has_many :product_in_subcategories
has_many :products, through: :product_in_subcategories
accepts_nested_attributes_for :product_in_subcategories, :allow_destroy => true
belongs_to :category
end
class Product < ActiveRecord::Base
has_many :product_in_subcategories
has_many :subcategories, through: :product_in_subcategories
accepts_nested_attributes_for :product_in_subcategories, :allow_destroy => true
end
class ProductInSubcategory < ActiveRecord::Base
belongs_to :product
belongs_to :subcategory
end
В ActiveAdmin У меня есть permit_params и образуют таким образом:
ActiveAdmin.register Product do
# note some params that are product only have been removed for simplicity
permit_params :name, subcategory_id:[:id], product_in_subcategories_attributes: [:id, :subcategory_id, :product_id, :_create, :_update]
form do |f|
f.inputs
f.has_many :product_in_subcategories do |s|
s.input :subcategory_id, :as => :check_boxes, :collection => Subcategory.all
end
f.actions
end
end
Форма населяет, как следует, и сохранит все за subcategory_id исключением. Если я вхожу в БД, то соответствующая подкатегория_id отобразит флажок в поле редактирования.
Сообщения при сохранении дают:
Unpermitted parameters: subcategory_id
Однако представляется, он пытается представить это с продуктом, для которого не является subcategory_id. Любые идеи о том, что я делаю неправильно здесь? Это сводит меня с ума, и я читаю все, что могу найти. Мне бы очень хотелось понять, что я делаю неправильно. Благодарю.
Любое решение с чекбоксами? –
Честно говоря, я закатил собственный камень, чтобы админ был быстрым и настраиваемым без DSL. Вы можете найти его в [SkinnyAdmin] (https://www.skinnyadmin.org). Ничего плохого в ActiveAdmin, но DSL - головная боль для меня. – user1572597