Мне кажется, я знаю, что здесь происходит.
Вы объявили модель SpreeUser
с отношением friends
. Вот почему в вашей консоли это работает. Вы правильно вызываете метод friends для класса SpreeUser
.
Полученная ошибка относится к классу Spree::User
(обратите внимание на разные имена классов). Я предполагаю, что вы используете spree_auth_devise
, который предоставляет этот класс.
Вам нужно будет правильно добавить свои логи c из SpreeUser
в Spree::User
. Я полагаю, что Шпрее / Солидус рекомендует делать это с использованием декораторов.
EG
Spree::User.class_eval do
has_many :friendships
has_many :friends, through: :friendships
end
Выше не проверено, и наилучшее предположение взято из этого ответа SO
Вы также можете проверить мою теорию, запустив Spree::User.first.friends
в своей консоли. Вы должны получить сообщение об ошибке, подобное браузеру.