あなたpluck
とができないチェーンto_sql
それはがActiveRecord::relation
を返さないと。あなたがしようとした場合、それはとても
NoMethodError: undefined method `to_sql' for [[""]]:Array
のような例外をスローし、私はActiveRecordの上で摘む 操作から派生したSQL文を取得する方法を見つけ出すことができません::関係オブジェクトを、そのことを考えると 配列です。 が@cschroedとして
まあ、は、彼らは両方(select
とpluck
)同じSQLがを照会実行し、コメントで指摘しました。唯一の違いはpluck
がActiveRecord::Relation
の代わりにarray
を返すことです。 pluck
あまりに
User.all.pluck(:first_name,:email)
#=> SELECT "users"."first_name", "users"."email" FROM "users"
のための同じ
User.select(:first_name,:email)
#=> SELECT "users"."first_name", "users"."email" FROM "users"
:はあなたが摘み取るしようとしているどのように多くの属性問題ではないこと、SQLステートメントがselect
例と同じになりますだから、select
によって返されたSQLステートメントを取るだけで、それはと同じであると信じる必要があります。それでおしまい!
あなたがTRYI何ですかやりたい? ['pluck'](https://github.com/rails/rails/blob/master/activerecord/lib/active_record/relation/calculations.rb#L177)は' select'と同じSQLクエリを使いますが、 '' 'ActiveRecord :: Relation'の代わりに配列を返すためには' cast_values'](https://github.com/rails/rails/blob/master/activerecord/lib/active_record/result.rb#L99)を参照してください。 – cschroed
私はユーザ入力に基づいてクエリを構築しています。実際に実行されているクエリについてのフィードバックを提供したいと思います。 – Bustikiller