我正在使用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
..
但这不起作用。我认为我没有正确使用过程。
答案 0 :(得分:1)
在您的模块中尝试此模式:
module ModelNameAdmin
def self.included(base)
base.class_eval do
rails_admin do
#...
end
end
end
end
只要模块包含在类中,class_eval
内的块就会被执行。