1

我不确定为什么这对我不起作用,但我希望将 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"' 我仍然会收到错误消息。有任何想法吗?

4

2 回答 2

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
于 2014-04-21T12:32:58.643 回答
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
于 2015-01-19T19:32:58.123 回答