【发布时间】:2023-03-06 09:26:01
【问题描述】:
这有什么问题? 是的,我可以做一个 if else 语句,但我想用 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
【问题讨论】:
标签: ruby-on-rails ruby switch-statement case