ruby-on-rails - :through association 的 Rails where 子句

标签 ruby-on-rails ruby-on-rails-3

我有以下关联...

class Event < ActiveRecord::Base
  ...
  has_many :tags, :through => :taggings

这使我可以执行诸如 Event.last.tags 之类的操作并查看与电子邮件关联的所有标签。我正在尝试为标签提出一个 where 子句,我可以在其中执行诸如...
Event.where tag: 'my_tag'

当我这样做时,我得到:
2.1.3 :020 > Event.where tags: 'test'
  Event Load (0.4ms)  SELECT `events`.* FROM `events` WHERE `events`.`tags` = 'test'
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'events.tags' in 'where clause': SELECT `events`.* FROM `events`  WHERE `events`.`tags` = 'test'

最佳答案

这是您要找的吗?:

Event.includes(:tags).where(tags: {name: 'my_tag'})

这将获取所有带有标签的事件,其中标签的名称为 'my_tag' .更改 name使用存在于 tags 中的适当列名您尝试为其运行查询的表。

关于ruby-on-rails - :through association 的 Rails where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26917077/

相关文章:

ruby-on-rails - 如何使用 toxiproxy 模拟与 AWS S3 的不良连接?

ruby-on-rails - ruby on rails 命名作用域实现

ruby-on-rails-3 - 如何在 Rails 3 中干燥路由

mysql - Rails sql查询,过滤上千条记录汇总一列

ruby-on-rails-3 - Ruby on rails 文件上传

mysql - 在 Rails 项目上运行 ruby​​ 时遇到问题

sql - 如何从 Ruby 直接将 SQL 与 MySQL 对话?

ruby-on-rails - Rails : scaffold. 为模型创建管理 Controller

sql - Rails 使用 dependent destroy 和 dependent nullify 时

Rails 应用程序的 jquery 自动完成