2015-07-19 100 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'})