在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只是为了清理我的查询参数.