乾杯! のは、私はUser
ことhas_many
Accounts
があるとしましょう、Account
モデルはlogged_in (boolean)
フィールドがあります。Rails where_many関係のWHEREクエリは正しく動作しませんか?
私はARクエリ: User.joins(:accounts).where(accounts: { logged_in: false })
を書いていますか?
しかし、私はそれをチェックしますUser.joins(:accounts).where(accounts: { logged_in: false }).first.accounts.pluck(:logged_in)
そして、mobiles.logged_in = true
値を持ついくつかのアカウントがあることが分かりました。
(0.1ms) SELECT "accounts"."logged_in" FROM "accounts" WHERE "accounts"."user_id" = $1 [["user_id", 373]]
false
false
true
なぜですか?
'mobiles'は右、accounts''異なるのですか? – ollpu
は@ollpu申し訳ありませんが、タイプミスということは、私は 'accounts'を意味し、それが問題 – xamenrax
@Nikitaのソースではない - これは完璧に動作します。試してみてください。同じ条件に基づいてユーザーを見つけただけで、そのユーザーにはfalse_login_inアカウントしか持たないのがなぜでしょうか。これは単なる 'user'オブジェクトの' User.joins(:accounts).where(accounts:{logged_in:false})です。そして 'accounts'を呼び出すと、それに関連する' all'アカウントが返されます。 –