私のTrack.rbモデルには次のコードがあります。より多くの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)
モデルのRailsを使用してイム:すべての
Track.rb
has_many :missions
Mission.rb
belongs_to :track
has_many :submissions
Submission.rb
belongs_to :mission
?そうであれば、「含む」が行く方法です。 – tadman
私のすべてのモデルは正しく設定されています –
もしそうなら、あなたは必要なデータをeager-loadingすることによってそれらの 'belongs_to'タイプの関係を行使することができます。 'インクルード'は、何が関わっているのかを再定義することなく、ジョインを追加するという効果があります。少し試して、それが生成するクエリを見てください。最初に 'has_many:mission、through:tracks'などを設定して適切な関係を作ることもできます。 – tadman