2
create_table "friendships", :force => true do |t|
t.integer "user_id"
t.integer "friend_id"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "likes", :force => true do |t|
t.string "name"
t.integer "user_id"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "users", :force => true do |t|
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
end
class User < ActiveRecord::Base
has_many :friendships
has_many :friends, :through => :friendships
has_many :likes
has_many :friends_likes, :through => :friendships, :source => :likes
end
class Friendship < ActiveRecord::Base
belongs_to :user
belongs_to :friend, :class_name => "User", :foreign_key => "friend_id"
has_many :likes, :foreign_key => :user_id,
end
class Like < ActiveRecord::Base
belongs_to :user
belongs_to :friendship
end
我試圖讓「朋友喜歡」的模型,但我不能。
「User.find(1).friends_likes」 給出了SQL查詢
SELECT "likes".* FROM "likes" INNER JOIN "friendships" ON "likes".user_id = "friendships".id WHERE (("friendships".user_id = 1))
但我認爲必須是「INNER JOIN 「友誼」 ON 「喜歡」 .user_id = 「友誼」。friend_id「
我該怎麼做? 感謝