美文网首页
ruby中对可能出现的空查询做保险处理方式

ruby中对可能出现的空查询做保险处理方式

作者: 春木橙云 | 来源:发表于2023-10-20 14:16 被阅读0次

在ROR中,有如下代码:“ is_liked = Like.where(chain_id: chain_data.id, user_id: current_user[:id]).first.is_like || false”,现在where查询语句有可能查不到,会导致报错,该怎么处理呢?

你可以使用.try()方法来避免当查询结果为空时的错误。这样,如果查询结果为空,它将返回nil而不是抛出异常。以下是完善后的代码:
is_liked = Like.where(chain_id: chain_data.id, user_id: current_user[:id]).first.try(:is_like) || false

或者,你也可以使用更简洁的操作符&.来完成相同的操作:
is_liked = Like.where(chain_id: chain_data.id, user_id: current_user[:id]).first&.is_like || false

无论哪种方法,都可以确保当查询结果为空时,代码不会抛出异常。

相关文章

网友评论

      本文标题:ruby中对可能出现的空查询做保险处理方式

      本文链接:https://www.haomeiwen.com/subject/lvukidtx.html