【发布时间】:2011-05-30 17:03:54
【问题描述】:
所以我试图在我的表中查找在特定列中具有特定值的所有条目。我能想到的唯一方法是查看每个条目,看看它是否有价值,但我希望有一个更有效的解决方案 - 一旦你拥有一个相当大的数据库,这就会变得笨拙。
有人有更好的主意吗?
更新 - 我正在创建一个 HTML 表格,我想用我的模型中在特定列中具有特定值的所有条目来填充表格。我正在尝试做:
<%= render @users.where("column_name = 'value'") %>
正如下面的答案所建议的,但我收到“nil:NilClass 的未定义方法 `where'”错误。
更新 2 - 我不确定为什么 @users 会为零,但我稍后会尝试解决这个问题。目前,我尝试了
<% @user_message = User.where("column_name = 'value'") %>
<%= render @user_message %>
但它根本不显示任何条目。
更新 3 - 当我这样做时,Rails 控制台中的 User.all,我得到了所有用户,所以我知道数据在那里。但是,当我执行 User.where("column_name = 'value'") 时,我得到一个空数组。我仔细检查了列名和值以确保数据存在。
更新 4 - 已修复! - 我不确定为什么它在 Rails 控制台中不起作用,但我让它在站点中工作。我调用了我的部分 _user_message.html.erb。显然它仍然需要被称为_user.html.erb。感谢大家的帮助!
【问题讨论】:
-
我认为关系数据库不可能做到这一点。请解释您为什么要这样做,也许有人可以为您的实际问题提出更好的解决方案。
-
这意味着
@users是nil。像@ipd提到的那样做User.where
标签: ruby-on-rails database activerecord