我创建了一个助手来检查 current_user 的角色,以保护某些属性不被未经授权的用户编辑。
除了我在控制台中时,验证工作正常。显然没有用户,但它仍在尝试验证,我得到:
NoMethodError: undefined method `has_role?' for nil:NilClass
我怎样才能绕过这个验证,或者有没有更好的方法来实现我正在做的事情?
定位模型:
validate :check_archived_status, :on => :update
def check_archived_status
unless UserHelper.staff
if self.archived == false
if stuff == otherstuff
do some other stuff
end
end
end
end
用户助手:
def self.staff
staff = User.current_user.has_role?('Super', 'Admin', 'Tech')
end