【发布时间】:2013-08-10 18:27:03
【问题描述】:
我查看了一些与此相关的类似 SO 帖子,但我很难理解它。
我在项目和用户之间有一个 habtm 关系。我正在尝试查找特定用户不属于的所有项目,但我不知道如何。
我尝试过这样的事情:
Project.where('project_id != ?', user.id)
但这显然也是错误的。
我正在使用 rails 3.2.x
许多与此范围有关的答案,但我以前没有遇到过(我对 Rails 还是很陌生)。
我刚刚发现this 的帖子有一个答案建议:Project.where('id not in (?)', user.projects)
这似乎有效,除非user.projects 为空。我正在尝试 Project.where('id not in (?)', (d.projects.empty? ? '', d.projects))
,正如 JosephCastro 的回答评论线程中所建议的那样,但它在第二个 d.projects 上给了我一个语法错误。
编辑
与用户相关的项目模型 sn-p
class Project < ActiveRecord::Base
attr_accessible ...
has_and_belongs_to_many :users, :before_add => :validates_unique
然后
class User < ActiveRecord::Base
attr_accessible ...
has_and_belongs_to_many :projects
【问题讨论】:
-
使用
<>(SQL) 代替!=(Ruby) 有帮助吗?
标签: ruby-on-rails activerecord has-and-belongs-to-many