Rails принадлежит_в ассоциации, не может получить доступ к атрибутам владельца, когда является частью коллекции? - PullRequest
3 голосов
/ 09 марта 2010

У меня есть Объект, Шар, который принадлежит_ Девушке, которая может иметь_ множество шаров. Все работает по большей части, но если я попытаюсь распечатать имя девушки через:

@balls.each do |b|
    b.girl.name
end

Я получаю следующую ошибку:

"undefined method `name' for nil:NilClass"

Что меня действительно смущает. Если я скажу b.girl.class, я получу это как пример Girl, просто отлично. То есть это не «NillClass».

Мало того, если я просто попробую его для любого мяча, и скажу

@ball.girl.name

У меня все отлично.

Что это за коллекция шаров, которая меня бесит?

Edit:

В частности, это происходит на мой взгляд. Сейчас я провожу тестирование, чтобы увидеть, происходит ли это и в контроллере.

Ответы [ 2 ]

5 голосов
/ 09 марта 2010

У вас есть экземпляр Ball, с которым не связано Girl. Вы должны убедиться, что girl не nil до доступа к ее атрибуту name.

@balls.each do |b|
  b.girl.name unless b.girl.nil? 
end
1 голос
/ 09 марта 2010

Дангит, ладно, неважно. Проблема заключалась в том, что по какой-то причине у какого-то Ball Object на самом деле не было девушек (хотя у большинства так и было, поэтому любой данный Ball, который я пробовал, работал нормально, но если бы я попытался выполнить все из них, один из них потерпел бы неудачу, и ошибка просмотра только дай мне знать, что что-то пошло не так, а не где)

...