2015-07-19 106 views
1

我想用where子句做一个连接查询,但是我得到一个语法错误。在Rails中使用where子句和join子句activerecord

使用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... 
+0

你的'用户'有'user_tags'关联吗? –

+0

是的,它确实有它:) –

+0

哇,应该更清楚:请添加协会的问题,请。 –

回答

3

您可以在用户模型

has_many :user_tags 
has_many :tags, through: :user_tags 

,然后定义只使用

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