【问题标题】:rails_admin authentication with user's boolean admin使用用户的布尔管理员进行 rails_admin 身份验证
【发布时间】:2014-12-29 21:42:11
【问题描述】:
我目前正在使用带有设计的 rails 4.2.0beta4。在我的架构中,我的用户具有布尔值:admin default:false。安装rails_admin后,暂时允许每个用户进入我的/admin。但是我该如何让它只有布尔值 is_admin 的用户?真人登录?
我应该只做 rails generate devise admin 吗?这会比重新配置更快吗?
提前致谢。
【问题讨论】:
标签:
ruby-on-rails-4
devise
rails-admin
【解决方案1】:
我会创建一个管理命名空间...
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 添加到您想要保护的任何操作中,但我认为从长远来看,命名空间是一个更好的主意。