显示操作时出现ActiveAdmin STI错误但未编辑

时间:2013-09-27 18:30:04

标签: ruby-on-rails-3 activeadmin sti

我正在设置一个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

任何人都能告诉我我做错了什么?

由于

1 个答案:

答案 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

基本上,这个覆盖让我可以更好地控制管理员获取所有者的方式。

希望这有助于其他人,如果有更好的解决方案,请告诉我们。)