【发布时间】:2015-07-19 20:04:50
【问题描述】:
我想使用 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...
【问题讨论】:
-
你的
User有user_tags关联吗? -
是的,确实有 :)
-
哇,应该更清楚:请在问题中添加关联。
-
如果你的关系设置正确,你应该可以像这样加入 joins(:user_tags => :tags)
-
这将为与数据库记录关联的每个不等于“single”的标签返回一个用户实例。你确定那是你想要的吗?例如,您不希望用户在没有与之关联的“单一”标签的情况下返回?
标签: ruby-on-rails ruby-on-rails-4 rails-activerecord