принадлежащий связанному has_many через не быть распознанным - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть три модели, составляющие базовые has_many through отношения:

class Booking < ApplicationRecord
  validates_presence_of :user, :ride, :role, :required_seats
  belongs_to :user
  belongs_to :ride
end

class Ride < ApplicationRecord
    validates_presence_of :origin, :destination, :leave_at, :arrive_at, :price, :seats
    has_many :bookings, dependent: :destroy
  has_many :users, through: :bookings
    accepts_nested_attributes_for :bookings, :allow_destroy => true
end

class User < ApplicationRecord
  has_secure_password
  validates_presence_of :first_name, :last_name, :email, :password_digest
  has_many :bookings, dependent: :destroy
  has_many :rides, through: :bookings
  accepts_nested_attributes_for :bookings, :allow_destroy => true
end

При запуске модели ниже:

RSpec.describe Booking, type: :model do
  it { should belong_to(:users) }
  it { should belong_to(:rides) }

возвращает

Failure/Error: it { should belong_to(:users) }
       Expected Booking to have a belongs_to association called users (no association called users)

Failure/Error: it { should belong_to(:rides) }
       Expected Booking to have a belongs_to association called rides (no association called rides)

Ассоциация belongs_to явно создана в модели соединений "бронирования", но в модели она не распознается.

Таблица bookings имеет столбцы user_id и ride_id с внешними ключами, назначенными для соответствующих таблиц.

Я застрял на этой неделе уже сейчас, любая помощь будет благодарна за то, почему это могло произойти!

1 Ответ

0 голосов
/ 03 ноября 2018

, как справедливо указывало arieljuod , модели в моей спецификации должны были быть единственными, а не множественными.

RSpec.describe Booking, type: :model do
  it { should belong_to(:user) }
  it { should belong_to(:ride) }

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...