我正在设置一个active_admin应用并具有以下STI结构
class Organization < ActiveRecord::Base
attr_accessible :name, :type
end
class Contractor < Organization
def self.model_name
return Organization.model_name
end
end
class Supplier < Organization
def self.model_name
return Organization.model_name
end
end
使用Active Admin我有一个组织资源。适用于编辑但不适用于show动作。
e.g。我创建了一个新组织并将类型设置为“供应商”(也尝试使用承包商)然后当我保存时重定向到/admin/organizations/20
我在该路径上收到以下错误
undefined method `association_class' for nil:NilClass
Extracted source (around line #1):
1: insert_tag renderer_for(:show)
但是:可以转到/admin/orgnizations/20/edit
任何人都能告诉我我做错了什么?
由于
答案 0 :(得分:0)
行。所以......因为事实证明我的问题是我使用User类与组织有一个名为'owner'的关联。
要解决此问题(我仍然不完全理解,我只是简单地覆盖了show action active admin,如此
ActiveAdmin.register Organization do
show do |ad|
attributes_table do
row :name
row :owner do |record|
owner = User.find(record.owner_id)
link_to owner.full_name, admin_user_path(owner)
end
row :type
end
active_admin_comments
end
end
基本上,这个覆盖让我可以更好地控制管理员获取所有者的方式。
希望这有助于其他人,如果有更好的解决方案,请告诉我们。)