Railsアプリを5.1.xにアップグレードしようとしています。 私が気づいたこと、私のようなクエリをしようとすると:
Book.where(genre: ['mystery', 'romance']).count
、
生成されたSQLではなく、あなたが期待するものの
SELECT COUNT(*) FROM "books" WHERE "books"."genre" = $1 [["genre", "[\"mystery\", \"romance\"]"]]
です:何を
SELECT COUNT(*) FROM "books" WHERE "books"."genre" IN ('mystery', 'romance')
Rails 5.1:クエリが複数の値を検索しない場所に配列を渡す
が変わりましたか?古い行動を維持するための方法はありますか? 5.1.3では、この機能が変更されたことを示唆していません。 http://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html#method-i-where
ありがとう!
どの種類の列がジャンルですか? –
引用符が 'SELECT'ステートメントでどのようにエスケープされているかに基づいて、' ["mystery"、 "romance"] ''のような文字列を' ["mystery"ロマンス "]。 'where'に渡されているものの' class'を確認できますか? – cschroed