Тестирование дружбы: "Пользовательская дружба должна принадлежать другу". Ошибка (Rails 4)

Я следую за курсом Treehouse, но не получил положительного ответа на форумах там. Вот проблема, которую я имею:

1) Failure: UserFriendshipTest#test_: UserFriendship should belong to friend. [/Users/Sam/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/shoulda-context-1.2.1/lib/shoulda/context/context.rb:344]: Expected UserFriendship to have a belongs_to association called friend (Friend does not exist)

Мой файл user_friendship_test.rb выглядит так:

require 'test_helper'

class UserFriendshipTest < ActiveSupport::TestCase
  should belong_to(:user)
  should belong_to(:friend)
end

Мой файл user_friendship.rb выглядит так:

class UserFriendship < ActiveRecord::Base
   belongs_to :user
   belongs_to :friend
end

Я должен отметить, что я использую Rails 4.

Любая помощь приветствуется:)

2 ответа

Решение

Похоже, у вас нет класса Friend, который ищет принадлежащий вам. Я подозреваю, что дружественные отношения также должны быть объектами User, в этом случае вам нужно что-то вроде этого:

class UserFriendship < ActiveRecord::Base
  belongs_to :user
  belongs_to :friend, class_name: "User"
end

Если вы используете Spring для запуска своих тестов (например, bin/rspec), вам нужно вручную указать musta-matchers в вашем Gemfile.

Пожалуйста, прочтите README для получения более подробной информации: https://github.com/thoughtbot/shoulda-matchers

Другие вопросы по тегам