繁体   English   中英

在Rails ActiveRecord中将where子句与join子句一起使用

[英]Using a where clause with join clause in Rails activerecord

我想使用where子句进行联接查询,但是出现语法错误。

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

Rails的文档给出了一个示例,该示例使用具有单个联接的哈希,但是找不到与我的问题类似的哈希。

查询:

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...

您可以在用户模型中定义

has_many :user_tags
has_many :tags, through: :user_tags

然后就用

User.joins(:tags).where.not(tags: { value: 'single' })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM