so... `select_one` and `select_all`, maybe?
On Thu, Apr 10, 2014 at 10:37 PM, Rafael Mendonça França < [email protected]> wrote: > I was discussing with Aaron and we believe that passing relations to these > methods should not be advised. This is why we want to add a method to > relation to get the low level values. > > Rafael Mendonça França > http://twitter.com/rafaelfranca > https://github.com/rafaelfranca > > > On Thu, Apr 10, 2014 at 2:03 PM, Yves Senn <[email protected]> wrote: > >> We should keep #to_sql and Arel as private API. The use-case to get the >> raw response from the driver remains. >> It would be nice to use ActiveRecord to build the SQL but get access to >> the raw driver result and not the mapped objects. >> >> Do the lower level methods like `select_all`, `select_values`, etc. >> accept Relations? >> >> The current documentation is a bit confusing about the API (see >> http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/DatabaseStatements.html#method-i-select_values >> ): >> * The method is in the docs, so it's assumed to be public. >> * We name the argument arel, which let's you in belief that arel is >> public as well >> * The example uses raw SQL. >> >> It would be good to get some light into the dark. >> >> On 10.04.2014, at 18:57, 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. >> > > -- > 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.
