Связанные объекты не доступны в представлениях в Rails? ошибка нулевого объекта - PullRequest
0 голосов
/ 22 июля 2009

У меня есть отношение 1: 1 has_one / own_to между пользователями и регистрациями. У одного пользователя одна регистрация.

Когда я пытаюсь перебрать пользователей в представлении и отобразить их регистрационную информацию (источник для отслеживания), я получаю следующую ошибку:

ActionView :: TemplateError: У вас есть нулевой объект, когда вы этого не ожидали! Произошла ошибка при оценке nil.registration_code

Вот код оскорбительного вида:

<% @users.each do |user| %>
<%= user.registration.registration_code %>
<% end %>

В моем users_controller.rb:

def users_registration_codes
  @users = User.find(:all)
end

1 Ответ

3 голосов
/ 22 июля 2009

Вероятная проблема здесь в том, что вы находите конкретного пользователя без связанной регистрации - т.е. это не тот пользователь == nil, а тот user.registration == nil, поэтому он жалуется, когда вы пытаетесь вызвать registration_code () на несуществующий связанный объект регистрации

Попробуйте

<% @users.each do |user| %>
  <%= user.registration.registration_code if user.registration %>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...