Does Rails 4 have support for OR queries

This now works in Rails 5:

Article.where(title: 'Rails 3').or(Article.where(title: 'Rails 4'))

Code example in Rails's source.


The most common alternative is already answer by @gregates

Recently there has been pull request in rails source

Add #any_of query method to active_record Which adds or functionality to activerecord

the contributor has already created a gem incase its not accepted

its rails 3.2 and 4 compatible

https://github.com/oelmekki/activerecord_any_of

I havent tried it yet but soon wish to use it looks good to me.


Article.where(title: ['Rails 3', 'Rails 4'])

is how you'd do that in Active Record.

It's not possible to replicate any arbitrary SQL query using "Rails-y" syntax. But you can always just pass in literal sql.

So you could also do:

Article.where("articles.title = 'Rails 3' OR articles.title = 'Rails 4'")

I know that this is an old thread, but anyone else looking for a solution to this problem might find this code helpful:

Article.where(title: ["Rails 3", "Rails 4"])

Maybe that will help you get someone going in the right direction without having to risk sql injection.