ruby-on-rails - 在 ruby​​ 中分配变量之前是否有一种简便的方法来检查是否存在?

标签 ruby-on-rails ruby ruby-on-rails-4.2 ruby-2.0

是否有更短的方法来执行此操作(考虑到 a 已设置为某个值):

a = b 如果 b.存在?

我以前可能遇到过这样做的方法,但不记得了。

最佳答案

a = b if b.present? 本身在功能上等同于:

if b.present?
  a = b
else
  a = nil
end

所以你可以使用Object#presence :

presence()
Returns the receiver if it's present otherwise returns nil. object.presence is equivalent to

object.present? ? object : nil

像这样:

a = b.presence

如果 a 已经有一个值并且您实际上是在说:

a = something_interesting
a = b if b.present?

那么你可以说:

a = b.presence || something_interesting

关于ruby-on-rails - 在 ruby​​ 中分配变量之前是否有一种简便的方法来检查是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40273321/

相关文章:

ruby-on-rails - 如何在 Rails 中自动完成 HABTM 管理?

ruby-on-rails - 有没有办法停止执行调用方法以避免 Rails 中的 DoubleRenderError?

PostgreSQL 9.4 jsonb如何查询

ruby-on-rails - Rails:在模型之间共享枚举声明值

ruby-on-rails - PostgreSQL 分组错误按表分组,有时只存在

ruby-on-rails - 日期选择器不适用于 bootstrap-modal

ruby-on-rails - 计算不包括周末的天数

ruby-on-rails - 如何测试复合 Rails 模型范围?

ruby - 正则表达式获取完整的名字和姓氏的第一个字母

ruby - 将方法名称作为参数传递给另一个方法