Ruby on Rails Wednesday, August 24, 2016

The first thing I do with it is this:

if @new_relationships.any?

So it looks like .any? affects the query? I would have thought rails would perform the query, get all the records into @new_relationships, and then count them. This is a surprising feature.


On Wednesday, August 24, 2016 at 1:26:54 PM UTC+1, Frederick Cheung wrote:


On Wednesday, August 24, 2016 at 1:11:42 PM UTC+1, Bazley wrote:
This rails/sql code...

    @new_relationships = User.select('*')
                             
.from("(#{@rels_unordered.to_sql}) AS rels_unordered")
                             
.joins("
                        INNER JOIN  relationships
                        ON          rels_unordered.id = relationships.character_id
                        ORDER BY    relationships.created_at DESC
                        "
)

produces a query that begins like this:

    SELECT COUNT(*) FROM (SELECT .....

Why is it counting the records?? I haven't asked for a count. I simply want to select all columns after the join:


The code you posted above doesn't actually run any query - queries are executed lazily. What are you doing with @new_relationships? 

Fred 

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/41ec5676-836d-4079-b48c-b28b49a5326d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment