Запрос Squeel, сравнивающий 2 переменные - PullRequest
0 голосов
/ 14 февраля 2012

Используя 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, это еще лучше; -)

1 Ответ

0 голосов
/ 14 февраля 2012

Спасибо IRC, ребята, hron84, injekt и SIGe

Вот решение:

Payment.joins(:account => :preference).where{account.preference.currency == ~currency }.to_sql
...