Полиморфный синглтон в ActiveAdmin не работает для отношения has_one
У меня такая структура данных:
class CommercialProcess < ApplicationRecord
belongs_to :commercializable, polymorphic: true
end
class BoilerRoom < ApplicationRecord
has_one :commercial_process, as: :commercializable, dependent: :destroy
end
class BuildingAddress < ApplicationRecord
has_one :commercial_process, as: :commercializable, dependent: :destroy
end
Я определил дополнительную маршрутизацию в моем routes.rb:
namespace :admin do
resources :boiler_rooms do
resource :commercial_process
end
resources :building_addresses do
resource :commercial_process
end
end
И мой ActiveAdmin:
ActiveAdmin.register CommercialProcess do
actions :all, except: [:index, :destroy]
controller do
defaults singleton: true
belongs_to :boiler_room, :building_address, polymorphic: true
end
end
Но при попытке создать новый commercial_process
, через /admin/boiler_rooms/1/commercial_process/new
,
Получила следующую ошибку:
undefined method `resource' for nil:NilClass
Отладка кода Я обнаружил проблему, но не знаю решения:
if record.is_a?(parent.class)
return ActiveAdmin::Model.new(active_admin_config.belongs_to_config.resource, record)
end
где active_admin_config.belongs_to_config
является nil
Спасибо за вашу помощь!