Rails 搜索查询关联模型

2023-12-15

In 轨道广播#37它们显示了我正在尝试实现的简单搜索。我有以下关联:

class Owner < ActiveRecord::Base
    has_many :dogs
end

class Dog < ActiveRecord::Base
    belongs_to :owner
end

Dog 模型有一个属性“name”,主人也有。我需要能够过滤狗列表,这样如果您输入“Fido”(狗)或“Bob”(主人),Fido 就会显示在列表中。以下是当前设置搜索的方式:

模型狗.rb:

def self.search(search)
    if search
      find(:all, :conditions => ['name LIKE ?', "%#{search}%"])
    else
      find(:all)
    end
end

这将仅返回与狗名匹配的搜索词(忽略主人名)

我尝试将其更改为如下所示:

  def self.search(search)
    if search
      find(:all, :conditions => ['name LIKE ? or owner.name LIKE ?', "%#{search}%", "%#{search}%"])
    else
      find(:all)
    end
  end

然而据说没有所有者栏。如何更改搜索条件以便能够同时搜索狗名和主人姓名?


假设按照 Rails 约定,您有名为dogs for Dog模型和owners for Owner model.

更新search方法如下:

  def self.search(search)
    if search
      joins(:owner).where('dogs.name LIKE ? or owners.name LIKE ?', "%#{search}%", "%#{search}%")
    else
      find(:all)
    end
  end

您需要在之间进行联接查询dogs and owners表以便访问owners.name field

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 搜索查询关联模型 的相关文章

  • Active Record 和 DAO 之间的区别?

    数据访问对象和 Active Record 之间有什么区别 它们看起来非常相似 因为都在应用程序和持久层之间构建了一个层 并使用 SQL 查询抽象出直接数据库访问 数据访问对象 DAO 是指数据层中负责在域中保存单独实体的对象 Active
  • 包括 collection_select 帮助程序的空白和默认值

    我希望在 Rails 应用程序的下拉列表中有一个 选择一个选项 选项 我正在使用collection select辅助标签 它看起来像这样 我希望下拉菜单的默认选项是 选择国家 地区 Use the include blank option
  • 在 Rails App 中实现 WrapBootstrap 主题

    我刚刚购买了一个 wrapbootstrap 主题 并尝试将其插入我的 Rails 应用程序中 一些 css 如填充 导航栏 字形图标 和大多数 javascript 无法正常运行 我将所有样式表和 javascript 分别复制到 ass
  • Capistrano 无法定位应用程序部署中的 Gemfile 错误

    我正在尝试将 Rails 应用程序部署到生产服务器 并决定使用以下命令将其部署到 DigitalOcean本指南 https gorails com deploy ubuntu 14 04 overview RVM 要部署 我使用以下命令
  • sinatra 应用程序在运行时无法启动

    我使用的是 Ubuntu 10 10 Ruby 1 9 2 无论我做什么 我都无法在本地计算机上启动 sinatra 应用程序 你好 rb require sinatra get do Hello World end ruby hello
  • Rails:将参数从视图传递到控制器

    我在 Rails 中有以下模型 class Task lt ActiveRecord Base attr accessible description name project belongs to project validates na
  • 使用 PostgreSQL 的模式和 Rails 创建多租户应用程序

    我已经想通的事情 我正在学习如何在 Rails 中创建多租户应用程序 该应用程序根据用于查看应用程序的域或子域来提供来自不同模式的数据 我已经回答了一些问题 如何让 subdomain fu 也能与域一起使用 这是有人问了同样的问题 htt
  • S3 的 Rails 回形针默认图像

    我尝试在应用程序中使用default url 但我使用S3 存储图像 我不确定我需要在那里输入什么 URL 或者我是否必须创建一个假图像才能将所有内容放在那里 由于我的图像总是通过 S3 渲染 所以我不知道如果我只是在公共文件夹中放入一些默
  • 从 Rails Helper 返回多个标签的最佳方法是什么?

    我想创建一个隐藏字段并在一个助手中创建一个链接 然后将两者输出到我的 erb 应该输出结果 link to something a path form hidden field something tableize value gt som
  • 如何阻止“gem”实用程序访问我的主目录?

    当我跑步时 gem install
  • 如何查找重复字母最多的单词

    我的目标是找到给定字符串中重复字母最多的单词 例如 aabcc ddeeteefef iijjfff 会回来 ddeeteefef 因为 e 在这个单词中重复了五次 这比所有其他重复字符都多 到目前为止 这是我得到的 但它有很多问题并且不完
  • Rails 中的 ActionController::RoutingError (没有路由匹配 [GET] "/favicon.ico")

    我尝试过使用 还有这个 但我仍然在日志文件中看到此错误 ActionController RoutingError No route matches GET favicon ico favicon ico 位于 public 文件夹中 我也
  • 如何显示 RSpec 测试生成的 SQL 查询日志?

    我正在为我的 Rails 3 应用程序编写规范 我想测试数据库事务是否真的有效 如果能够看到我的应用程序在规范驱动下生成的 sql 查询 这将非常有帮助 有没有办法像在 Rails 控制台中一样查看查询 我正在使用 Rails 3 0 9
  • 设计和自定义 Rails 用户 URL

    我目前正在使用 Rails 3 2 5 和最新的 devise gem 目前用户可以访问他们的个人资料页面 example com users john doe 我想删除网址的用户部分 因此网址将是example com john doe
  • 使用 Ruby 通过 Outlook 发送消息的最简单方法是什么?

    我的工作要求我为某些测试自动生成电子邮件 我一直在四处寻找 但一直未能找到可以快速实施的合理解决方案 它需要在 Outlook 中 而不是其他邮件服务器中 因为我们有一些奇怪的身份验证规则 并且我们需要保存草稿的选项 而不仅仅是发送消息 显
  • ActiveRecord 查询,按关联排序,最后一个 has_many

    我试图列出所有Users by the created at最近创建的关联记录 通讯 列 到目前为止我所拥有的 User includes communications order communications created at IS
  • 为什么每个方法需要将其循环的值分配给变量?

    在 Rails 上工作 发现我对 Rails 的理解缺乏知识each method 不知道为什么each方法需要变量 message h2 h2 不确定为什么每个方法都需要变量 message 事实并非如此require它 你完全可以忽略它
  • 如何最好地将地址关联到 Rails 中的多个模型?

    这个问题 https stackoverflow com questions 648463 best way to model customer addresson SO 似乎与我的问题有关 但我不确定我的问题是否得到了回答 一个地址可以属
  • 在Ruby中从csv文件中获取第二行[重复]

    这个问题在这里已经有答案了 actual row File open file name 0 r first row data CSV foreach actual row do row first row data lt lt row 1
  • Ruby:基于控制台的菜单

    我有一个名称和 URL 数组 并希望以向上 向下滚动菜单的形式向用户呈现名称列表 基本上是什么dialog允许在外壳内 我调查过ncurses ruby rdialog and HighLine但它们似乎要么作为一个项目被放弃 要么甚至从它

随机推荐

  • 没有聚合的简单(?)PIVOT

    枢轴 伙计 我只是想念它 也许是因为我没有做聚合 哎呀 也许枢轴不是做到这一点的方法 感觉应该很简单 但是却让我难住了 假设我有这个 SELECT col1 FROM tbl1 col1 414 589 我怎样才能把这两条记录恢复为 fau
  • 如何使用 JavaScript 异步更新我的内容?

    Scenario 我正在编写一个 Web 应用程序 在我的例子中是 MVC 我需要使用 get 请求的响应来更新特定容器 有时我想过滤元素并从响应中找到一个元素以放入原始容器中 我该怎么做 当我需要异步部分更新我的内容时 我正在构建一个 W
  • 通过maven下载本地仓库jar依赖文件

    我无法通过 Maven 下载一个 jar 因此我创建了一个本地存储库并手动下载了 jar 然后使用系统范围添加到 pom
  • 将包含 COMBINING DIAERESIS 的文本转换为 utf-8

    我们有一些包含德语变音符号的文本 例如使用 a 组合分音符号 cc 88 知道如何将此类文本正确转换为 utf8 吗 首先 如果它还不是unicode然后解码它 第二 unicodedata normalize 第三 编码
  • r wordclouds 中的彩色类别

    使用 R 中的 wordcloud 包 我想根据数据集中的分类变量为不同的单词着色 说我的数据如下 name weight group 1 Aba 10 x 2 Bcd 20 y 3 Cde 30 z 4 Def 5 x 在这里作为dput
  • 替代instanceof?

    我听说使用 instanceof 或等效项是糟糕的设计 http www javapractices com topic TopicAction do Id 31 什么时候应该使用instanceof 什么时候不应该使用instanceof
  • Oracle Select 语句中的 IF 条件

    有没有办法在 IF 条件中使用 select 语句 例如 IF SELECT TotalPrice FROM ORDER WHERE ORDERID 123 gt 0 THEN do something ELSE do something
  • 使用 .str.replace() 与 .replace() 更新 pandas DataFrame

    我的 pandas Dataframe df 中有一个列 其中包含一个带有一些尾随十六进制编码 NULL x00 的字符串 至少我认为是这样 当我尝试将它们替换为 df SOPInstanceUID df SOPInstanceUID re
  • 未定义的参考编译器错误

    我想我已经很接近了 但是我遇到了这个错误 我已经用头撞墙几个小时了 我错过了一些愚蠢的东西 我一个字符一个字符地查找 但我找不到它 编译器给了我 main cpp 16 undefined reference to translator t
  • 我的整合金矿算法的缺陷在哪里?

    设置是 给定一个列表N像这样的物体 class Mine public int Distance get set from river public int Gold get set in tons 将黄金从一个矿场转移到另一个矿场的成本为
  • Windows 通知库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在为 Windows 开发一个小型托盘图标应用程序 我需要显示非侵入性的视觉通知 类似于您在 MSN Messenger 或任何其他 IM 应用
  • 获取代理ip地址使用scrapy进行爬取

    我使用 Tor 来抓取网页 我启动了 Tor 和 Polipo 服务并添加了 class ProxyMiddleware object overwrite process request def process request self r
  • 在 JTextField 中键入阿拉伯数字

    我正在尝试在中输入阿拉伯数字JTextField我用过DocumentListener如下 txtName getDocument addDocumentListener this public void insertUpdate Docu
  • windows批处理中call和cmd /c的区别

    有人可以解释一下两者之间有什么区别吗 call someBatchFile bat And cmd C someBatchFile bat 他们都向我建议作为解决方案this问题 但我不明白为什么它们都有效 更重要的是 如果有任何显着差异我
  • 使用perl在字符串中搜索未知子字符串

    我正在尝试从网站下载文件 但我只想下载文件版本比我拥有的同一文件最新的版本 文件名为CTP Latest5 0 37 iso 我需要检查文件名中的字符串 37 因此 如果数字 37 大于我已有的版本 则只有我下载 下载文件后 我想将字符串
  • 将数据帧的行作为参数传递给函数,同时保持其他参数不变

    跟进将数据帧的行作为参数传递给 R 中的函数 并使用指定参数的列名称 我想使用不同的参数组合来训练以下模型 library xgboost library Matrix df lt data frame y sample 0 1 1000
  • 无法使用 Logitech C920 访问 cv::VideoCapture 的属性

    我正在使用 Logitech C920 和 OpenCV 开发一个小型网络摄像头应用程序 实际上 我可以从相机获取图像 对于给定的分辨率没有任何问题 但除了框架宽度和高度之外 我无法访问相机中的任何设置 我有以下代码 正如您所猜测的 该代码
  • 安装 android studio 时安装 HAXM 失败

    无法安装英特尔 HAXM 此计算机满足 HAXM 的要求 但未开启 Intel 虚拟化技术 VT x 在启用 VT x 之前无法安装 HAXM 此消息出现在安装过程之间 但在安装工作室运行之后 请让我了解 HAXM 安装失败对工作室的影响
  • CSS:100% 宽度或高度,同时保持纵横比?

    目前 通过 STYLE 我可以使用width 100 and auto在高度上 反之亦然 但我仍然无法将图像限制在特定位置 分别是太宽或太高 有任何想法吗 如果您仅在图像上定义一个维度 则图像长宽比将始终保留 问题是图像比您喜欢的更大 更高
  • Rails 搜索查询关联模型

    In 轨道广播 37它们显示了我正在尝试实现的简单搜索 我有以下关联 class Owner lt ActiveRecord Base has many dogs end class Dog lt ActiveRecord Base bel