2012-11-06 33 views
0

我正在使用rails_admin,以及如何使用rails_admin配置模型的選項好像是有一個rails_admin.rb配置文件(但是這個文件會很大,我必須在每次更改後重新啓動服務器):如何從另一個文件中包含和使用proc?

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

或包括每個模型內的配置塊:

class ModelName 
    rails_admin do 
     .. 

但我寧願沒有模型中的配置塊,因爲這些數據塊變得非常長。

所以我最初嘗試的模型創建從每個配置塊的混入:

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。

回答

1

嘗試這種模式與模塊:

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

每當模塊包含在一個類中class_eval塊將被執行。

相關問題