在SQL中,它应如下所示:
SELECT * FROM `categories_description_old` WHERE ((`categories_description` = '') OR (`categories_name` = '') OR (`categories_heading_title` = ''))
我的(丑陋的)解决方案:
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
是否有更好的解决方案来链接“或”条件?
最佳答案
您可以执行以下操作:
conditions.inject(table_categories_description_old.filter(true)){|acc, cond|
acc.or(cond => '')
}
但是在这种情况下,当您已经考虑过SQL查询时,我发现只键入整个WHERE条件并使用Sequel来清理我的查询参数会更容易。
关于ruby - 如何写得更好? Ruby续集链接OR,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4185883/