ruby-on-rails - Ruby 检查一行中是否存在记录和关联

标签 ruby-on-rails ruby if-statement

我经常遇到的事情。我想这样做:

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/

相关文章:

ruby-on-rails - 无法停止本地主机 :3000 redirecting to https

javascript - 用于添加和删除类的 Jquery 打开/关闭变量

r - 如何使用条件如果在R中更改矩阵条目

ruby-on-rails - 为什么我的 rails 路线有点偏离?

ruby-on-rails - 如何使用 has_many 制作 Rails 4 ActiveRecord 模型,该模型加入带有 OR 条件的自定义 WHERE 子句

ruby - Ruby 的 XMPP 库

javascript - 为什么我的函数 if/else if/else if 语句返回相同的答案?

ruby-on-rails - 如何让 Rails 在应用程序代码之后*加载插件?

ruby-on-rails - 导致 ruby​​ on rails 错误的型号名称

ruby-on-rails - 如何使用 Draper 用模块化装饰器装饰 STI 模型?