У меня есть следующий код моей модели Track.rb. Есть ли способ написать это, используя синтаксис Rails? Im использованием Rails 3.2Как бы написать этот SQL-запрос в синтаксисе Rails 3.2?
@track = Track.find(7)
Submission.joins("LEFT JOIN missions ON missions.id = submissions.mission_id")
.joins("LEFT JOIN tracks ON tracks.id = missions.track_id")
.where("missions.track_id = ?", track.id)
Модели:
Track.rb
has_many :missions
Mission.rb
belongs_to :track
has_many :submissions
Submission.rb
belongs_to :mission
Есть ли у вас отношения между этими моделями? Если это так, 'include' - это путь. – tadman
Да, все мои модели настроены правильно –
Если они есть, вы можете использовать эти отношения типа 'own_to', пытаясь загрузить нужные вам данные. 'includes' имеет эффект добавления соединения без всякого беспорядка переопределения того, что задействовано. Поэкспериментируйте немного и посмотрите, какие запросы он генерирует. Вы также можете настроить 'has_many: mission, through: tracks' и т. Д., Чтобы в первую очередь создать правильные отношения для этого. – tadman