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“
我该怎么做? 感谢