我通过
添加管理员属性为Devise
添加了
管理员角色.
你能告诉我,这是否是创建一个需要管理员用户签名的before_filter的正确方法:
在任何控制器中:
before_filter :authenticate_admin!
在application_controller中
protected
unless current_user.try(:admin?)
redirect_to :new_user_session_path
end
用这种
方法去
before_filter :authenticate_user!
before_filter do
redirect_to new_user_session_path unless current_user && current_user.admin?
end
这也确保任何客人都被迫登录.您不需要修改默认方法来强制验证只是访问实例方法admin?
def admin?
self.admin == true
end
我的方法是创建一个角色属性,并根据一组预期的角色来检查其字符串值 – 它的灵活性远远超过了创建许多布尔属性.