現在、関連付けで作成された最後のレコードを見つけようとしているスコープがあり、特定のブール値が false の場合はそれを選択します
IE Foo has_many Bar's と Bar's には bazzed という名前のブール列があります
scope :no_baz, joins(:bars).order("bars.id DESC").limit(1).where("bars.bazzed = 'f'")
これの問題は、レールがこのクエリを次のように変換することです
SELECT "foos".* FROM "foos" INNER JOIN "bars" ON "bars"."foo_id" = "foos"."id" WHERE (bars.bazzed = 'f') ORDER BY bars.id DESC LIMIT 1
問題は、レールが where 句の後に注文と制限を呼び出していることです。私が探しているのは、注文と制限を最初に実行して、バズが false に設定されている最後のバーを見つけようとすることです。
私が達成しようとしているクエリを実行するためのネイティブな AR の方法はありますか?
編集
私は、最後のバーが false に設定されているバーを持つ foo を取得しようとしています。