這是什麼問題? 是的,我可以做一個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'任何說法? –
哎呀,我的壞。固定。 –
現在它已修復,您的代碼與我的答案完全相同。 –