在Rails activerecord中使用带有join子句的where子句

问题描述 投票:1回答:1

我想用where子句进行连接查询,但是我遇到了语法错误。

将where子句与连接一起使用的正确语法是什么?

Rails docs给出了一个使用带有单个连接的哈希的示例,但找不到类似于我的问题的哈希。

查询:

User.joins("user_tags").joins("tags").where("tags.value <> 'single'")

错误:

ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR:  syntax error at or near "tags"
LINE 1: ...LECT "users".* FROM "users" user_tags tags...
ruby-on-rails ruby-on-rails-4 rails-activerecord
1个回答
4
投票

您可以在用户模型中定义

has_many :user_tags
has_many :tags, through: :user_tags

然后只是使用

User.joins(:tags).where.not(tags: { value: 'single' })
© www.soinside.com 2019 - 2024. All rights reserved.