#to_sql + #execute is widely used, because it's a legitimate, and popular
use case. Sometimes, we just need pure ruby objects. AR models become an
overhead in those situations.


On Thu, Apr 10, 2014 at 10:27 PM, Rafael Mendonça França <
[email protected]> wrote:

> to_a is already used to return an Array of objects.
>
> select_rows seems good to me.
>
> But Arel and #to_sql seem to be used widely.
>
> Yes, this is sad. They was never public API. But I think we can't do
> anything besides make clear what is public and what is private API.
>
> Rafael Mendonça França
> http://twitter.com/rafaelfranca
> https://github.com/rafaelfranca
>
>
> On Thu, Apr 10, 2014 at 1:53 PM, Dheeraj Kumar 
> <[email protected]>wrote:
>
>> How about #to_a and #to_h instead?
>>
>> #to_h would return the results as a hash, useful when you are retrieving
>> a single row, but many columns.
>> #to_a would return the results as an array of hashes, useful when you
>> have multiple rows.
>>
>>
>> On Thu, Apr 10, 2014 at 10:11 PM, Rafael Mendonça França <
>> [email protected]> wrote:
>>
>>> +1, too.
>>>
>>> I was planning to add this method because calling `to_sql` is not a good
>>> solution. I think the name we choose was `select_all`.
>>>
>>> Rafael Mendonça França
>>> http://twitter.com/rafaelfranca
>>> https://github.com/rafaelfranca
>>>
>>>
>>> On Thu, Apr 10, 2014 at 1:03 PM, Dheeraj Kumar <
>>> [email protected]> wrote:
>>>
>>>> +1, I do this a lot.
>>>> On Apr 10, 2014 9:30 PM, "Evgeniy Sokovikov" <[email protected]>
>>>> wrote:
>>>>
>>>>> Hello. Is it possible to get raw sql query result from 
>>>>> ActiveRecord::Relation ?
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Now I can make it this way:
>>>>>
>>>>> sql = Note.select('count(*), commit_id').group(:commit_id).to_sql
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ActiveRecord::Base.connection.execute(sql).to_a
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> I would like something like this:
>>>>>
>>>>>
>>>>> Note.select('count(*), commit_id').group(:commit_id).raw
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> But didn't find such method.
>>>>>
>>>>>  --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Ruby on Rails: Core" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To post to this group, send email to [email protected]
>>>>> .
>>>>> Visit this group at http://groups.google.com/group/rubyonrails-core.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>  --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Ruby on Rails: Core" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at http://groups.google.com/group/rubyonrails-core.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "Ruby on Rails: Core" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/rubyonrails-core.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Ruby on Rails: Core" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/rubyonrails-core.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Core" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/rubyonrails-core.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/rubyonrails-core.
For more options, visit https://groups.google.com/d/optout.

Reply via email to