好問題。我在我的項目中使用Rails Admin和Pundit。
我更喜歡將Admin模型與User模型分開。
其中一個原因是我喜歡能夠從Rails Admin「成爲用戶」,以便在出現問題時能夠幫助他們。當您擁有單獨的用戶和管理員模型時,更容易做到這一點。
管理模式可以非常簡單。與 rails generate devise Admin
然後在你的config/initializers/rails_admin.rb
生成它添加
config.authenticate_with do
warden.authenticate! :scope => :admin
end
config.current_user_method(&:current_admin)
重定向到正確的配置文件,此方法添加到您的ApplicationController
def after_sign_in_path_for(resource)
if resource.class == Administrator
rails_admin_path
else
# Change profile_path to where you want regular users to go
stored_location_for(resource) || profile_path
end
end
爲了防止從目前的註銷管理員從當前用戶註銷時,在config/initializers/devise.rb
中設置此配置
config.sign_out_all_scopes = false
爲了解決您的其他問題,我使用了CanCan和Pundit。我更喜歡Pundit,因爲CanCan會爲每個請求評估所有權限。藉助Pundit,只有在需要時才能檢查權限。根據我的經驗,專家也更加靈活。
@Monkbroc嗨只是好奇你是如何實現的權威人士多用戶類(如:管理員和用戶) – jufemaiz 2015-05-12 00:59:39
當然@jufemaiz。你可以發表一個關於多個模型的專家的問題,我會回答嗎? – monkbroc 2015-05-13 01:46:01
會做@monkbroc – jufemaiz 2015-05-13 02:31:30