2014-12-18 4 views
0

Так что я думаю, что я завязываю отношения между моими базами данных.неправильные ассоциации между несколькими моделями

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

Другой пользователь может просмотреть свой тур и принять решение о бронировании своего тура.

Пользователь может забронировать несколько туров.

Мои модели:

пользователя

Tour

Tour_request

user.rb

has_many :tours 
has_many tour_requests 

tour_request.rb

belongs_to :user 
belongs_to :tour 

tour.rb

belongs_to :user 
has_many :tour_requests 

Теперь изначально код у меня было:

current_user.tour_requests.all 

однако это не так, как люди, которые просили тур будет увидеть также. Я только хочу, чтобы люди, у которых был тур, увидели это. Таким образом, я пробовал:

current_user.tours.tour_requests.all 

но это дало мне ошибку.

Что я делаю неправильно? Являются ли мои ассоциации испорченными?

ответ

0

Проблема с current_user.tours.tour_requests.all такова, что current_user.toursActiveRecord::Relation, который не определяет tour_requests. Если вы просто хотите получить список всех tour_requests для всех туров, созданных пользователем, вам необходимо has_many :through ассоциации:

user.rb

has_many :tours 
has_many :tour_requests 

has_many :requests_for_own_tours, through: :tours, source: :tour_request 
+0

что бы закончить код вверх, находясь в контроллере? , и отношение от tour_request к пользователю, если мы сделали это так? – sja

Смежные вопросы