我想在同一个类的两个对象(Similarity
)之间创建一个“情侣”模型(User
)。
users
模型中Similarity
的顺序无关紧要。换句话说,user1和user2之间的相似性是user2和user1之间的相似性。
class User < AR::Base
end
class Similarity < AR::Base
belongs_to :user
belongs_to :second_user, :class_name => 'User'
# Some AR attributes here (can not be a HABTM)
end
我正在尝试获取用户的所有“类似”用户。可以用
定义关系class User
has_many :similarities
has_many :right_similarities, :class_name => 'Similarity',
:foreign_key => 'second_user_id'
def all_similarities
return similarities + right_similarities
end
has_many :similar_users, :through => :similarities,
:source => :second_user
has_many :right_similar_users, :through => :right_similarities,
:source => :user
def all_similar_users
return similar_users + right_similar_users
end
end
但这显然效率不高,难以阅读。
如何在“Rails关系方式”中声明上述这些关系?
此致