I often see a use case when in a query, there are several relations with 
attributes with the same names(for example, in our codebase, there are 
several "soft-deletable" entities, and all of them have deleted_at
 attribute).

Article.where(deleted_at: nil).joins(:comments).where(comments: { deleted_at: 
nil })

At the moment, it's not possible to unscope deleted_at only for articles or 
only for comments.

I created a PR that adds support for specifying tables in where clauses in 
unscope method:

Article.where(deleted_at: nil).joins(:comments).where(comments: { deleted_at: 
nil }).unscope(where: { articles: :deleted_at })
  # == Article.joins(:comments).where(comments: { deleted_at: nil }) 


PR: https://github.com/rails/rails/pull/38608

Happy to get any feedback, thanks!

-- 
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 rubyonrails-core+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-core/e5117870-9340-4d86-b81c-0ae75840d486%40googlegroups.com.

Reply via email to