这是什么问题? 是的,我可以做一个if else语句,但我想用case语句做这件事。为什么我的ruby case语句不起作用?
在我的控制器
query_limit = case current_user
when nil
return 5
when is_admin?
return 200
when has_role?('registered')
return 20
else
return 5
end
NoMethodError (undefined method `is_admin?' for #<V1::MyController:123123123>):
puts query_limit
#总是ELSE当我这样做:
query_limit = case current_user
when nil
return 5
when current_user.is_admin?
return 200
when current_user.has_role?('registered')
return 20
else
return 5
end
型号用户
class User
def is_admin?
self.has_role?('administrator')
end
def has_role?(the_role)
self.roles.any? {|role| role.slug == the_role}
end
end
'当nil'没有为'case'任何说法? –
哎呀,我的坏。固定。 –
现在它已修复,您的代码与我的答案完全相同。 –