Znam te dwa stwierdzenia wykonać tę samą SQL:ActiveRecord zrywać do SQL
Korzystanie select
User.select(:email)
# SELECT `users`.`email` FROM `users`
i korzystania pluck
User.all.pluck(:email)
# SELECT `users`.`email` FROM `users`
Teraz muszę uzyskać SQL pochodzący z każda metoda. Biorąc pod uwagę, że metoda select
zwraca wartość ActiveRecord::Relation
, mogę wywołać metodę to_sql
. Jednak nie mogę dowiedzieć się, jak uzyskać instrukcję SQL wyprowadzoną z operacji pluck na obiekcie ActiveRecord::Relation
, biorąc pod uwagę, że wynikiem jest tablica.
Proszę wziąć pod uwagę, że jest to uproszczenie problemu. Liczba wyskubanych atrybutów może być dowolnie wysoka.
Każda pomoc zostanie doceniona.
Co tryi do zrobienia? ['pluck'] (https://github.com/rails/rails/blob/master/activerecord/lib/active_record/relation/calculations.rb#L177) używa tego samego zapytania SQL co' select', ale używa [' cast_values'] (https://github.com/rails/rails/blob/master/activerecord/lib/active_record/result.rb#L99), aby zwrócić tablicę zamiast "ActiveRecord :: Relation". – cschroed
Buduję zapytanie na podstawie danych wprowadzanych przez użytkownika i chcę przekazać opinię na temat zapytania, które faktycznie jest wykonywane. – Bustikiller