结合查询的项目

时间:2014-07-17 18:37:40

标签: ruby-on-rails

尝试组合查询的项目,但有时单个查询会生成nil,空数组或两者都有。

@items = relation_1 + relation_2 + relation_3
@items.shuffle!

我认为这将是解决方案:

@items = [relation_1, relation_2, relation_3].compact.flatten

Compact删除nil,但flatten删除其他所有内容而不是空数组。还有其他解决方案吗?

2 个答案:

答案 0 :(得分:2)

如果这是一个rails应用程序,你可以这样做:

@items = [relation_1, relation_2, relation_3].reject &:blank?

答案 1 :(得分:0)

尝试以下方法:

@itmes = [relation_1, relation_2, relation_3].flatten.select(&:present?)

Documentation about .present?