Полиморфный синглтон в 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

Спасибо за вашу помощь!

0 ответов

Другие вопросы по тегам