【问题标题】:ActiveAdmin 1.0.0 belongs_to - Unable to autoload ParentActiveAdmin 1.0.0 belongs_to - 无法自动加载父级
【发布时间】:2016-03-10 20:45:04
【问题描述】:

我正在使用 Rails gem 'activeadmin', '~> 1.0.0.pre2',并且到目前为止能够在我的项目中成功使用它。几个(大约 10 个)对象能够对它们执行 CRUD,有些甚至包括其他表的外键。好东西!

我遇到的问题是我有几个必须通过belongs_to 关系显示的对象,但是当我在其 ActiveAdmin 模型注册中的子对象上放置belongs_to 时,出现以下错误尝试在本地运行 WEBrick:

=> Booting WEBrick
=> Rails 4.2.4 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
Exiting
/.rvm/gems/ruby-2.2.4/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:495:in `load_missing_constant': Unable to autoload constant Admin::ParentClass, expected /app/admin/parent_class.rb to define it (LoadError)

以下是现有的模型和 ActiveAdmin 注册:

app/models/parent_class.rb

class ParentClass < ActiveRecord::Base
  has_many :sub_objects
end

app/admin/parent_class.rb

ActiveAdmin.register ParentClass do
  permit_params :title
end

app/models/sub_object.rb

class SubObject < ActiveRecord::Base
  belongs_to :parent_class
end

app/admin/sub_object.rb

ActiveAdmin.register SubObject do
  belongs_to :parent_class

  permit_params :name
end

通过上述设置,我仍然收到错误Unable to autoload constant Admin::ParentClass, expected /app/admin/parent_class.rb to define it (LoadError)

...但是如果我在 app/admin/sub_object.rb 中注释掉 belongs_to,它可以正常工作(但是路由 /admin/parent_classes/{id}/sub_objects 没有定义并且不起作用)

为什么会这样,我需要做什么才能使这项工作(使用我在上一段中描述的路线)?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 activerecord activeadmin


    【解决方案1】:

    Timo(ActiveAdmin 项目成员)对我输入的 Github 问题的一些帮助下,我能够弄清楚:

    belongs_to :parent_class, class_name: "::ParentClass"
    

    这似乎也是我的特定项目的一个问题,因为我无法在加载并安装了最新的 Active Admin 1.0.0 gem 的 vanilla Rails 4 应用程序中重现它(belongs_to 没有工作class_name 属性)。

    它不是一个“标准”的 Rails 应用程序,因为我们有一个“主”应用程序在主命名空间中使用 Angular 前端运行 API,然后 ActiveAdmin 在它自己的 /admin 命名空间中为我们处理大量重复的 CRUD 操作。但是到现在为止,ActiveAdmin 的工作还算顺利。

    如果我有时间,我会调查为什么在我的项目中需要 class_name,但除了确保它确实有效之外,我可能不会询问并继续前进。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多