Ask A Question

Notifications

You’re not receiving notifications from this thread.

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

Thank you for sharing, Chris, really awesome feature.

Reply

Did not know this. Very nice.

Reply

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.

Reply

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...

Reply

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.

Reply

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

Reply

Beauty!

Reply

Thank you sharing this wonderful feature of ActiveRecord

Reply

Thank you for your education!

Reply
Join the discussion
Create an account Log in

Want to stay up-to-date with Ruby on Rails?

Join 86,946+ developers who get early access to new tutorials, screencasts, articles, and more.

    We care about the protection of your data. Read our Privacy Policy.