【问题标题】:Rails - Efficient way of finding entries with specific value in modelRails - 在模型中查找具有特定值的条目的有效方法
【发布时间】: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。感谢大家的帮助!

【问题讨论】:

  • 我认为关系数据库不可能做到这一点。请解释您为什么要这样做,也许有人可以为您的实际问题提出更好的解决方案。
  • 这意味着@usersnil。像@ipd提到的那样做User.where

标签: ruby-on-rails database activerecord


【解决方案1】:

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

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

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

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

伊恩。

【讨论】:

  • 别忘了在您要搜索的列上添加索引。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-23
  • 2021-06-04
  • 1970-01-01
  • 2012-06-28
  • 2019-09-07
相关资源
最近更新 更多