2011-03-04 65 views
0

我的友誼模式,併爲每一個新的友誼,我創建了兩個新紀錄:高級友誼模型和查詢中的Rails 3

  • 用戶1和朋友1
  • 朋友1和用戶1

我可以檢索所有標準人員,如:朋友,友誼,pending_friends ...當我嘗試獲得普通朋友,朋友的朋友時,情況變得複雜...

現在t Ø得到共同的友誼,我使用類似:

has_many :common_friendships, :class_name => 'Friendship', :conditions=>'friendships.user_id = #{self.id}' do 
    def common_with(friend) 
    joins("inner join friendships fl2 on friendships.friend_id = fl2.user_id").where("fl2.friend_id = #{friend.id}") 
    end 
end 

我也可以使用完整的查詢與finder_sql,如:

select distinct * 
from friendships fl1 
inner join friendships fl2 on fl1.friend_id = fl2.user_id 
where fl1.user_id = 1 and fl2.friend_id = 2 

我如何能做到這一點,在Rails 3的一個優雅的方式?

+0

您使用的存儲freinds和用戶信息的單一模式??? – Ashish 2011-03-04 10:36:35

+0

當然沒有。有一個用戶和友誼模型 – Alex 2011-03-04 13:36:16

+1

可能的重複[如何在社交網絡應用程序的Rails 3中實現友誼模型?](http://stackoverflow.com/questions/5612736/how-to-implement-a-friendship -model式護欄-3-FOR-A-社交網絡,applicati) – Tunaki 2016-06-25 17:35:31

回答