1
當我到to_sql
以下查詢正常工作:to_sql不起作用
2.1.8 :017 > Task.joins(:recurrence).group('recurrences.id').to_sql
=> "SELECT `tasks`.* FROM `tasks` INNER JOIN `recurrences` ON `recurrences`.`id` = `tasks`.`recurrence_id` GROUP BY recurrences.id"
但後來當我添加pluck
這是行不通的:
2.1.8 :018 > Task.joins(:recurrence).group('recurrences.id').pluck('tasks.title').to_sql
(21.0ms) SELECT tasks.title FROM `tasks` INNER JOIN `recurrences` ON `recurrences`.`id` = `tasks`.`recurrence_id` GROUP BY recurrences.id
NoMethodError: undefined method `to_sql' for #<Array:0x007fbde9863f18>
顯然,pluck
的添加將對象的類型從ActiveRecord_Relation
更改爲Array
,並且您顯然無法在陣列上執行to_sql
。
什麼我也想輸出(對於初學者)是這樣的:
SELECT tasks.title FROM `tasks` INNER JOIN `recurrences` ON `recurrences`.`id` = `tasks`.`recurrence_id` GROUP BY recurrences.id
...這實際上是我複製/不通過to_sql
產生Task.joins(:recurrence).group('recurrences.id').pluck('tasks.title')
查詢粘貼。
是否有可能做我想做的事情?
實在值得提及的是,因爲'pluck'是一個熱心方法(如'find'),它立即轉移到數據庫,並返回結果的數組。 Docs [here](http://guides.rubyonrails.org/active_record_querying.html#pluck)和[here](http://edgeapi.rubyonrails.org/classes/Enumerable.html#method-i-pluck) –