Извините за запутанный заголовок, я не мог объяснить это лучше. Не стесняйтесь редактировать это.
У меня есть такая структура:
class Home < ActiveRecord::Base
has_many :reservations
end
class User < ActiveRecord::Base
has_many :reservations
end
class Reservation < ActiveRecord::Base
belongs_to :user
belongs_to :home
end
Это означает, что резервирование связано с пользователем, который делает резервирование, и
дом, который он бронирует.
Я создаю экземпляры резервирования, как это:
user_instance.reservations.create(:home => home_instance, :dates_and_other_data => ...)
Используя этот метод, резервирование должным образом создается в базе данных, и я могу получить его (с остальными сделанными резервированием пользователем) с помощью
user_instance.reservations
Но, если я попытаюсь извлечь его из домашнего экземпляра, который я использовал в качестве параметра, например:
home_instance.reservations
Возвращает пустой массив. Также происходит обратное (я не могу получить резервирование из экземпляра пользователя, если я создаю его из домов).
Что я делаю не так?
Разве эти два предложения не совпадают?
Reservation.create(:user => user, :home => home, :other_stuff)
User.reservations.create(:home => home, :other_stuff)