我经常遇到的事情。我想这样做:
if current_user.exists? && current_user.role == "admin"
# Do something
end
显然,如果当前用户不存在,那么这将不起作用,因为它返回 undefined method role for nil class
有没有一种方法可以在没有多个 If 语句的情况下在一行中实现上述目标?
最佳答案
尝试:
if current_user&.role == "admin"
&
是一个安全的导航器 - 如果它之前的部分为 nil,则方法链的其余部分将不会执行并简单地返回 nil 而不是抛出错误。
更多阅读:http://mitrev.net/ruby/2015/11/13/the-operator-in-ruby/
关于ruby-on-rails - Ruby 检查一行中是否存在记录和关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58556567/