我目前正在使用rails 4.2.0beta4 with devise。在我的架构中,我的用户有boolean:admin default:false。安装rails_admin后,暂时允许每个用户转到我的/ admin。但是我该怎么做才能只有boolean is_admin的用户呢?真人登录?
我应该只做rails generate devise admin吗?这比再次配置更快吗?
提前致谢。
答案 0 :(得分:0)
我要创建一个管理命名空间... 1 - 在routes.rb
中namespace :admin do
resources :your_routes
end
2 - 确保存在以下目录; app / views / admin,app / controllers / admin,并将要限制的任何控制器和视图模板放在这些文件夹中。
3 - 将其添加到application_controller.rb
def user_is_admin?
signed_in? && current_user.is_admin?
end
4 - 然后在app / controllers / admin中的任何控制器中添加一个before_filter进行检查 some_controller.rb
class Admin::YourController < ApplicationController
before_filter :user_is_admin?
end
对于它的价值,如果你不想,你就没有命名空间。从技术上讲,您可以将步骤3和4中的before_filter添加到您想要保护的任何操作中,但我认为从长远来看,命名空间是一个更好的主意。