Skip to main content

Querying Named Scopes Across Models with ActiveRecord::Relation#merge Discussion

General • Asked by Chris Oliver

Thank you for sharing, Chris, really awesome feature.


Did not know this. Very nice.


Great tip, Chris! Thanks for sharing. However, I notice (at 2:53) that your query `Author.joins(:books).merge(Book.available)` returns the same author three times. I'm not a SQL pro, so perhaps that's the normal behavior for this query, but not what I would expect when trying to return "all of the authors that have an available book". Any suggestions for de-duping the results from `merge()`? I'm sure a `uniq()` on the end would do the trick, but wonder if ActiveRecord has a way to do this right in the DB.

It depends on the type of JOIN you do. There's a bunch of different ways to do it, but take a look at this. It's one of the better things out there to explain the different JOINs. http://blog.codinghorror.co...


Hello, Chris! Thank you for your education!

I try make it by using association at DataBase. So i use:

** Author.books.available**

And its work! Whats way is better (merge or method above )?

P.S. Sorry for my English.

Yes that works! You should use your version, not the merge for this.



Login or Create An Account to join the conversation.

Subscribe to the newsletter

Join 24,647+ developers who get early access to new screencasts, articles, guides, updates, and more.

    By clicking this button, you agree to the GoRails Terms of Service and Privacy Policy.

    More of a social being? We're also on Twitter and YouTube.