Как правильно обращаться к current_user.user_profile.name, когда для определенного пользователя может быть или не быть запись user_profile?
У меня есть две таблицы: User (: email) и UserProfile (: name,: company).
Пользователь has_one
user_profile и UserProfile belongs_to
Пользователь
Профиль может существовать или не существовать.(Это необязательно для пользователей)
Во многих моих кодах и представлениях я хочу отобразить имя пользователя и компанию, например current_user.user_profile.name
Конечно, если пользователь не создал ихв профиле current_user.user_profile равен nil, поэтому ссылка на current_user.user_profile.name приводит к ошибке.
Я знаю, как это сделать неправильно (проверяйте nil перед обращением к полю .name КАЖДЫЙ раз, когда мне нужноname).
Лучшее, что я могу придумать, - это создать метод User с именем name
, который выполняет проверку nil, поэтому current_user.name возвращает имя (или "", если профиль отсутствует).Но это тоже неправильно, так как мне нужно написать метод для каждого поля, которое я добавляю в user_profile.