我有使用Devise创建的用户模型,类型:字符串属性和 AdminUser 模型(AdminUser < User
)。< / p>
在应用程序控制器中,我定义了:require_admin 方法:
def require_admin
unless current_user == AdminUser
flash[:error] = "You are not an admin"
redirect_to store_index_path
end
end
在产品控制器上设置
before_action :require_admin, except: :show
现在我通过控制台成功创建了一个AdminUser(使用AdminUser id),当我登录应用程序时,我仍然无法使用这些操作(创建,编辑等)。
有什么想法吗?
答案 0 :(得分:1)
用
current_user == AdminUser
检查current_user
对象是否与AdminUser
类相等。
您想要的是检查current_user
的班级是AdminUser
:
current_user.class == AdminUser
# or
current_user.is_a?(AdminUser)
# or
current_user.kind_of?(AdminUser)
# or
current_user.instance_of?(AdminUser)
# or
AdminUser === current_user
答案 1 :(得分:0)
我认为它应该是current_user.is_a?(AdminUser)