我刚刚开始学习红宝石,并且有与问题相关的活跃记录。如果您希望以一种不会破坏应用程序的方式查找记录,那么哪个更好:
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
您能否指导我,告诉我在性能和正确的“轨道”方面哪个更好?
答案 0 :(得分:1)
即使where语句不返回任何结果,您也应该能够调用“ first”方法。如果没有结果,则第一种方法将返回nil。
我们可以简化您的第一个建议:
user = User.where(email: 'abc@def.com').first