我注意到即使我启动rake任务,ActiveAdmin也会被初始化和加载。是否有任何方法可以指定当rails服务器启动时,ActiveAdmin在app/admin
下创建的所有文件只能加载?
这是如此成问题的原因是因为当您执行以下操作时:
ActiveAdmin.register Tip do
filter :score_type, :as => :select, :collection => Tip.all
end
您尝试执行rake db:create
,后跟rake db:migrate
,此文件已加载,但Tip尚不存在!
答案 0 :(得分:0)
这回答了你的问题,但我相信不会解决你的真正问题。
在Ruby中,判断是否定义了常量:
Object.const_defined? "Tip"
=> false
class Tip; end
> Object.const_defined? "Tip"
=> true
因此,您可以像这样包装ActiveAdmin定义:
if Object.const_defined? "Tip"
ActiveAdmin.register Tip do
filter :score_type, :as => :select, :collection => Tip.all
end
end