2012-10-29 40 views
1

我不確定爲什麼這不適用於我,但我希望將每個處於rails_admin範圍內的模型配置爲一個混入模式,並將其包含到模型中。這使我獲得了關注點分離的好處,同時避免了每次進行更改時都必須重新啓動服務器,這只是使用rails_admin.rb文件時的問題。將rails_admin配置作爲mixin包含在內

所以我有一個模型,應用程序/模型/ section.rb

class Section 
    include SectionAdmin 

而且在模型/ section_admin.rb(我把它放在這裏得到它的工作將它移入LIB)之前,我有:

module SectionAdmin 
    rails_admin do 
    ... 

但我得到的錯誤:

undefined method `rails_admin' for main:Object 

這是混亂的我,因爲作爲一個mixin我認爲這是沒有評價聯合國直到它被包括在內。這也令人困惑,因爲即使在模塊中包含'require'rails_admin'',我仍然會收到錯誤。有任何想法嗎?

+0

顯示您的路線。遷移後是否重新啓動了網絡服務器? –

+0

因爲我只是移動代碼,所以我沒有遷移到運行。我也沒有對路由進行任何更改,因爲這只是一個mixin的包含,在任何控制器中都沒有改變。 –

回答

0

這在軌工作對我來說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 
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