如果找不到记录,则使属性检查返回false而不是错误

时间:2014-03-13 19:45:03

标签: ruby-on-rails ruby-on-rails-4 rails-activerecord

我想检查两件事:

  1. 用户是否收到了好友请求? current_user.friend_requests.find_by_receiver_id(user.id)

  2. 如果是这样,他们接受了吗? current_user.friend_requests.find_by_receiver_id(user.id).accepted

  3. 问题是如果没有请求,#2会引发错误。我怎样才能避免这种情况,只是让它返回false?

1 个答案:

答案 0 :(得分:1)

如果记录不存在,您可以使用nil的{​​{3}}方法轻松返回ActiveSupport(这是假的):

current_user.friend_requests.find_by_receiver_id(user.id).try(:accepted)