包括rails_admin配置作为mixin

时间:2012-10-29 16:07:47

标签: ruby-on-rails ruby rails-admin

我不确定为什么这对我不起作用,但我想让rails_admin范围内的每个模型的配置成为我包含在模型中的mixin。这给了我一个关注点分离的好处,同时避免每次我进行更改时都必须重新启动服务器,这只是使用rails_admin.rb文件的问题。

所以我有一个模型,app / models / section.rb

class Section
  include SectionAdmin

在models / section_admin.rb中(我把它放在这里以便在将其移入lib之前使其工作)我有:

module SectionAdmin
  rails_admin do 
    ...

但我收到错误:

undefined method `rails_admin' for main:Object

这对我来说很困惑,因为作为mixin,我认为直到它被包括在内才进行评估。它也令人困惑,因为即使我在模块中包含'require“rails_admin”',我仍然会收到错误。有任何想法吗?

2 个答案:

答案 0 :(得分:0)

这适用于rails 4.0.0

# models/admin/user.rb
module Admin
  module User

    ::User.rails_admin do 

      list do
        field :name
        field :email
      end    

    end

  end
end

答案 1 :(得分:0)

我发现这是在Rails 4中处理这个问题最干净的方法

我的关注:

# models/concerns/rails_admin_posts.rb
module RailsAdminPosts
  extend ActiveSupport::Concern

  included do
    rails_admin do
      ...
    end
  end
end

我的模特:

# models/post.rb
class Post < ActiveRecord::Base
  include RailsAdminPosts

  ...

end