0

squeel を使用して、次のリクエストを生成できます

Payment.joins(:account => :preference).where({:account => {:preference => {:currency => :currency } } }).to_sql
=> SELECT "payments".* FROM "payments" INNER JOIN "accounts" ON "accounts"."id" = "payments"."account_id" INNER JOIN "preferences" ON "preferences"."account_id" = "accounts"."id" WHERE "preferences"."currency" = "preferences"."currency"

ただし入手方法は?(資本異動)

=> SELECT "payments".* FROM "payments" INNER JOIN "accounts" ON "accounts"."id" = "payments"."account_id" INNER JOIN "preferences" ON "preferences"."account_id" = "accounts"."id" WHERE "preferences"."currency" = "PAYMENTS"."currency"

ソリューションが meta_where でもうまく機能する場合、それはさらに良いことです ;-)

4

1 に答える 1

0

IRC関係者hron84、injekt、SIGeに感謝

解決策は次のとおりです。

Payment.joins(:account => :preference).where{account.preference.currency == ~currency }.to_sql
于 2012-02-14T10:40:28.820 に答える