0

我注意到即使我启动了一个 rake 任务,ActiveAdmin 也会被初始化和加载。有没有办法指定 ActiveAdmin 创建的所有文件在 rails 服务器启动时才app/admin加载?

之所以有问题,是因为当您执行以下操作时:

ActiveAdmin.register Tip do
  filter :score_type, :as => :select, :collection => Tip.all
end

然后您尝试执行 a rake db:create,然后执行 a ,rake db:migrate加载此文件但 Tip 尚不存在!

4

1 回答 1

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
于 2012-06-28T14:51:45.590 回答