Rails:find所有条件

在我的应用程序,我有来自不同国家的用户,并希望执行find他们

我试图在索引操作中这样做

@fromcanada = User.find(:all, :country => 'canada') 

但我得到了错误

  Unknown key: country 

然而,这让我问,什么可以成为一个关键? 在我的数据库模式文件中,我在用户表上有一个“国家”列。

 t.string "country" 

此外,当我做了一个全部find

 @users = User.all 

我能够做到这一点

 <%= user.country %></p> 

你能解释为什么我find所有条件都不起作用吗? 并告诉我应该怎么做?

尝试这个。

 @fromcanada = User.find(:all, :conditions => { :country => 'canada' }) 

编辑:正如jason328指出的,上面的答案在3.2中被弃用,并且更新的答案是

 @fromcanada = User.where(:country => 'canada') 

如果没有人阅读评论。 一个更好的格式将是

 @fromcanada = User.where(country: 'canada').all 

以前的答案代码在3.2中被弃用。

而对于那些使用Rails 4,删除all方法就足够了。

 @fromcanada = User.where(country: 'canada').to_a 

请注意, to_a将查询调用为数组格式。