Ruby on Rails Sunday, December 28, 2014

I'd like to remove all existing constraints from an ActiveRecord::Relation and leave the rest in-tact.

I am not looking for #unscoped since I would like to keep any joins/order clauses around.

Additionally, I would like to re-use the constraints that were removed in another query, so the ability to call #to_sql on them would be a very nice bonus.


This is the best I've been able to hack together:

Order.where(id: 1).where(id: 2).arel.constraints[0].to_sql

 => "`orders`.`id` = 1 AND `orders`.`id` = 2"

...but that just seems wrong.  As far as I can tell #constraints always has one item in it, but I don't know that will always be true.


Thanks!

--
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/bbc2f6bd-8713-472d-b184-e737a83d0929%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment