我知道這兩個語句執行相同的SQL:ActiveRecord的採摘到SQL
使用select
User.select(:email)
# SELECT `users`.`email` FROM `users`
而且使用pluck
User.all.pluck(:email)
# SELECT `users`.`email` FROM `users`
現在我需要從得到的SQL語句每種方法。鑑於select
方法返回ActiveRecord::Relation
,我可以調用to_sql
方法。但是,我無法弄清楚如何從ActiveRecord::Relation
對象的pluck操作獲得派生的SQL語句,因爲結果是一個數組。
請注意,這是對問題的簡化。彈出的屬性數量可以任意高。
任何幫助,將不勝感激。
你在tryi要做什麼? ['pluck'](https://github.com/rails/rails/blob/master/activerecord/lib/active_record/relation/calculations.rb#L177)與'select'使用相同的SQL查詢,但它使用['' cast_values'](https://github.com/rails/rails/blob/master/activerecord/lib/active_record/result.rb#L99)返回一個數組而不是'ActiveRecord :: Relation'。 – cschroed
我正在構建一個基於用戶輸入的查詢,並且我想提供關於實際正在執行的查詢的反饋 – Bustikiller