在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/

10-15 13:48