Rails从控制器过滤记录?

时间:2012-03-08 22:00:18

标签: ruby-on-rails ruby activerecord

我的Calls控制器中有以下代码:

@calls = Call.where(:destination => ("1234"),
                    :destination => ("5678"),
                    :destination => ("91011"))

虽然上面的代码有效,但它只列出目的地为91011的记录。我想以某种方式显示目标字段与任何数字匹配的所有记录。

我不确定是否应该为每个过滤器添加.where语句。

任何帮助将不胜感激!

这非常相似to another question I asked a while ago。但是,这是为了进一步过滤查找条件而不是扩大范围。

1 个答案:

答案 0 :(得分:3)

试试这个:

@calls = Call.where(:destination => ["1234", "5678", "91011"])

此外,如果您使用的是ruby 1.9,则可以使用新的哈希语法:

@calls = Call.where(destination: ["1234", "5678", "91011"])

更新

对于限制,有一种方法

@calls = Call.where(destination: ["1234", "5678", "91011"]).limit(10)

我强烈建议您阅读ActiveRecord Query Interface,这太棒了!