Rails undefined метод 'name' для nil: NilClass, и я не понимаю почему

-5

Привет, ребята, я разрабатываю систему, созданную на RoR

Моя идея состоит в том, что человек может посещать серверные события, поэтому у меня есть 3 таблицы: Person, event и attend

Attend содержит person_id event_id Я бы сказал, что это своего рода ассоциативная таблица Person model

enter image description here

enter image description here

Я хочу показать сопровождающих конкретного события, поэтому я в шоу-действиях моего контроллера у меня есть enter image description here

И, на мой взгляд,

enter image description here

Я получаю правильную информацию в большинстве событий enter image description here

Но только в некоторых случаях это происходит со мной enter image description here

и у меня нет ИДЕИ, ЧТО ДЕЛАТЬ.

Заранее за внимание и помощь

спросил(а) 2021-01-19T18:47:50+03:00 6 месяцев, 2 недели назад
1
Решение
64

Rails имеет встроенный помощник для элегантной обработки значений nil:

<%= @attend.person.try(:name) + ' ' + attend.person.try(:last_name) %>

Если person является nil, то возвращается nil, а не поднимая NoMethodError исключения.

Кроме того, вы можете конкатенировать эти строки более элегантным способом, воспользовавшись интерполяцией строк в Ruby. Когда вы используете двойные кавычки, все в строке, заключенной внутри #{} оценивается как код Ruby.

<%= "#{@attend.person.try(:name)} #{attend.person.try(:last_name)}" %>

ответил(а) 2021-01-19T18:47:50+03:00 6 месяцев, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема