0

我正在使用 rails_admin 并且如何使用 rails_admin 配置模型的选项似乎有一个 rails_admin.rb 配置文件(但是这个文件会很大,每次更改后我都必须重新启动服务器):

RailsAdmin.config do |config|
   config.model ModelName do
       ..

或在每个模型中包含一个配置块:

 class ModelName
     rails_admin do
         ..

但我宁愿在模型中没有配置块,因为这些块变得非常长。

所以我最初尝试从模型的每个配置块创建 mixins:

  module ModelNameAdmin
      rails_admin do
          ...

这不起作用,因为它无法识别 rails_admin。

这样做也不起作用:

 module ModelNameAdmin
     RailsAdmin.config do |config|
         config.model ModelName do

但这不起作用,因为显然 RailsAdmin 配置不能被多次调用。

所以现在我想做的只是有一个定义了 Proc 的 lib 文件,我可以在每个模型中包含和使用它。就像:

  model ModelName
       require('./lib/model_name_admin')

       rails_admin do
            @model_name_admin
       end

在 ./lib/model_name_admin 文件中有:

  @model_name_admin = Proc.new
       rails_admin do
           ..

但这不起作用。我认为我没有正确使用 proc。

4

1 回答 1

1

用你的模块试试这个模式:

module ModelNameAdmin
  def self.included(base)
    base.class_eval do
      rails_admin do
        #...
      end
    end
  end
end

class_eval只要模块包含在类中,就会执行其中的块。

于 2012-11-06T19:16:39.070 回答