Rails:查找所有条件

时间:2012-03-10 21:09:31

标签: ruby-on-rails

在我的应用中,我有来自不同国家/地区的用户,并希望对其进行查找

我试着在索引动作

中这样做
 @fromcanada = User.find(:all, :country => 'canada')

但是我收到了错误

 Unknown key: country

然而,这导致我问,什么可以成为关键?在我的数据库模式文件中,我在users表上有一个“country”列。

t.string   "country"

此外,当我找到所有

@users = User.all

我能够做到这一点

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

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

2 个答案:

答案 0 :(得分:78)

试试这个。

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

编辑: 正如jason328所指出的,上述答案在3.2中已弃用,更新的答案将是

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

答案 1 :(得分:32)

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

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

上一个答案的代码在3.2中已被弃用。

对于那些使用Rails 4的人来说,删除all方法就足够了。

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

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