我有一个Image
模型和一个User
模型。我通过一个名为likes
. 也Image
属于一个User
我正在尝试查找所有不属于某个用户且该用户不喜欢的图像。我似乎无法想出 where 条件。
这就是我所拥有的:
@image = Image.where("user_id != :user_id AND image_id NOT IN :likes", {:user_id => session[:user].id, :likes => session[:user].likes}).first
这是我的Image
和User
模型:
class Image < ActiveRecord::Base
# attr_accessible :title, :body
belongs_to :user
has_and_belongs_to_many :likes, :class_name => 'User'
end
class User < ActiveRecord::Base
# attr_accessible :title, :body
has_many :submitted_images, :class_name => 'Image'
has_and_belongs_to_many :likes, :class_name => 'Image'
end
有人可以帮我提出这个查询吗?谢谢!
编辑
我得到的语法错误:
PG::Error: ERROR: syntax error at or near "3"
LINE 1: ... FROM "images" WHERE (user_id != 1 AND image_id NOT IN 3,5) LIMIT...
^
: SELECT "images".* FROM "images" WHERE (user_id != 1 AND image_id NOT IN 3,5) LIMIT 1
如果您查看我的images_users
AKAlikes
表,您可以看到3,5
我的错误来自哪里: