Image
モデルとモデルがありUser
ます。私はそれらをと呼ばれるHABTM関係で結合しますlikes
。また、Image
に属しますUser
私は、ユーザーに属していない、そのユーザーに好かれていなかったすべての画像を見つけようとしています。私はどこの条件を思い付くことができないようです。
これは私が持っているものです:
@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
と、エラーのどこから来ているのかがわかります。