'SELECT "complaints".* FROM "complaints" INNER JOIN "machines" ON "machines"."id" = "complaints"."machine_id" INNER JOIN "mclns" ON "machines"."mcln_id" = "mclns"."id" ORDER BY "mclns"."response_time" ASC'
上記のSQLをActiveRecordステートメントに変換する必要があります
complaint
mcln
モデルはそれが通過しなければならないことを知りませんmachine
Complaint.joins(:machine=>:mcln)
与える
SELECT "complaints".* FROM "complaints" INNER JOIN "machines" ON "machines"."id" = "complaints"."machine_id" INNER JOIN "mclns" ON "mclns"."machine_id" = "machines"."id"
しかし、私は必要です
SELECT "complaints".* FROM "complaints" INNER JOIN "machines" ON "machines"."id" = "complaints"."machine_id" INNER JOIN "mclns" ON "machines"."mcln_id" = "mclns"."id"
アップデート:
マシンはmclnを持つことができ、また多くのマシンは同じmclnを持つことができます。
私はそれを使用して実装しました
has_one :mcln
Machine
モデル
belongs_to :machine
と_Mcln
そして、それが正しい実装であるかどうかはわかりません。