Rails - 在模型中查找具有特定值的条目的有效方法

时间:2011-05-30 17:03:54

标签: ruby-on-rails database activerecord

所以我试图在我的表中找到特定列中具有特定值的所有条目。我能想到的唯一方法是查看每个条目,看看它是否有价值,但我希望有一个更有效的解决方案 - 一旦你拥有一个相当大的数据库,这就变得笨拙。

有没有人有更好的主意?

更新 - 我正在创建一个HTML表格,我想填充表格,其中包含模型中特定列中具有特定值的所有条目。我想做的是:

<%= render @users.where("column_name = 'value'") %>

如下面的答案所推荐,但我得到“未定义的方法`其中'为'nil:NilClass”错误。

更新2 - 我不确定为什么@users会为零,但我会稍后尝试解决这个问题。现在,我试过

<% @user_message = User.where("column_name = 'value'") %>
<%= render @user_message %>

但它根本没有显示任何条目。

更新3 - 当我在rails控制台中执行User.all时,我得到了所有用户,因此我知道数据存在。但是,当我执行User.where(“column_name ='value'”)时,我得到一个空数组。我仔细检查了列名和值,以确保数据存在。

更新4 - 修复! - 我不确定为什么它在rails console中不起作用,但我让它在网站上工作。我打电话给我的部分_user_message.html.erb。显然它仍然需要被称为_user.html.erb。感谢大家的帮助!

1 个答案:

答案 0 :(得分:2)

听起来你想做一个查询,即

@records = Model.where(:some_column => some_value)

Rails有很好的文档,我建议你看一下ActiveRecord查询指南:

http://guides.rubyonrails.org/active_record_querying.html

伊恩。