In SQL it should look like this:
SELECT * FROM `categories_description_old` WHERE ((`categories_description` = '') OR (`categories_name` = '') OR (`categories_heading_title` = ''))
My (ugly) solution:
conditions = [:categories_name, :categories_heading_title, :categories_description]
b = table_categories_description_old.filter(conditions.pop => "")
conditions.each do |m|
b = b.or(m => "")
end
Is there a better solution to chain the or conditions?
DB[:categories_description_old].
filter({:categories_description=>'',
:categories_name=>'',
:categories_heading_title=>''}.sql_or)
You can do something like:
conditions.inject(table_categories_description_old.filter(true)){|acc, cond|
acc.or(cond => '')
}
But in cases like this when you have already thought out SQL query, I find it easier to just type whole WHERE condition and use Sequel just to sanitize my query parameters.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With