Активные записи в Ruby on Rails - PullRequest
0 голосов
/ 20 мая 2019

Я только начинаю изучать ruby ​​на рельсах, и у меня есть активная запись, связанная с вопросами. Если вы хотите найти запись способом, который не нарушает работу приложения, какой из них лучше:

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 Ответ

1 голос
/ 20 мая 2019

Вы должны иметь возможность вызывать метод first, даже если оператор where не возвращает результатов. В случае отсутствия результатов первый метод вернет nil.

Мы можем упростить ваше первое предложение:

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