0

我正在设置一个 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 我有一个组织资源。适用于编辑,但不适用于显示操作。

例如,我创建了一个新组织并将类型设置为“供应商”(也尝试使用承包商)然后当我保存它时重定向到/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

谁能告诉我我做错了什么?

谢谢

4

1 回答 1

0

好的。所以.....事实证明,我的问题是我使用 User 类与名为“所有者”的组织建立了关联。

为了解决这个问题(我仍然不完全理解,我只是像这样覆盖了 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

基本上,这种覆盖让我更好地控制了活动管理员如何获取所有者。

希望这对其他人有帮助,如果有更好的解决方案,请告诉我:)

于 2013-09-28T06:57:58.793 回答