begin
@data[user.id]["email"]
rescue Exception
nil
end
, или вы можете сделать
@date[user.try(:id)]["email"]
, который просто вернет ноль, если пользователь ноль, и вы называете id для него.
Настоящая проблема здесь заключается в том, чтоу вас есть запах кода.Какой бы класс ни владел методом lookup
, он слишком много знает о деталях реализации @data.Я не могу рекомендовать исправление без дополнительного кода, но я бы предложил написать метод / класс, который знает только, как извлечь письмо из данных.Что-то вроде:
@data.get_email_for_user
Таким образом, этому классу не придется беспокоиться о том, является ли пользователь нулевым.Нужно только побеспокоиться о возвращении электронной почты.