【发布时间】: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