Ruby on Rails中的活动记录

时间:2019-05-19 22:22:35

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

我刚刚开始学习红宝石,并且有与问题相关的活跃记录。如果您希望以一种不会破坏应用程序的方式查找记录,那么哪个更好:

users = User.where(email: abc@def.com)
if users.any?
    user = users.first
else
    user = nil
end

OR

begin
     user = User.where(email: abc@def.com).first
rescue
     user = nil
end

您能否指导我,告诉我在性能和正确的“轨道”方面哪个更好?

1 个答案:

答案 0 :(得分:1)

即使where语句不返回任何结果,您也应该能够调用“ first”方法。如果没有结果,则第一种方法将返回nil。

我们可以简化您的第一个建议:

user = User.where(email: 'abc@def.com').first