2010-04-12 45 views
0

我想要做一個模型類,它在Rails上關聯自己。基本上,用戶有朋友,也是用戶。我輸入了用戶模型類中的以下內容:在Rails中使用自定義SQL查詢中的模型編號的問題

has_many :friends, 
    :class_name => "User", 
    :foreign_key => :user_id, 
    :finder_sql => %{SELECT users.* 
     FROM 
     users INNER JOIN friends 
      ON (users.id = friends.user_id OR users.id = friends.friend_id) 
     WHERE users.id <> #{id}} 

但有趣的事實是,它似乎每當我兩次上IRB型User.first.friends這finder_sql被調用。爲什麼?

回答

0
+0

問題是我需要一個'朋友'表,因爲用戶可以有多個朋友,並不一定像例子中那樣以分層方式。 其實我認爲它應該是has_and_belongs_to_many,但我不想爲這個關係指定角色(例如,在友誼的最後一個用戶是什麼都沒有關係)。所以我想指定一個描述這個需求的連接子句。有什麼想法嗎? – Thiago 2010-04-12 20:09:22