假设我有一个用户模型,并且我想让每个用户选择他们的朋友"这也是用户,按照喜好的顺序。通过这种方式,用户可以拥有最好的朋友"和一个"第三好朋友"等等。我认为我正在寻找的东西(纠正我,如果这是一条不好的路径)是用户模型中的一个问题,并为他们增加了订单的维度。
最终目标是允许我做类似的事情:
@user.favorite_users
=>他们最喜欢的用户的有序列表。
@user.favorite_users.each do |user|
//iterate through each user in order from best friend to worst friend
end
我使用的是Ruby 2.3.0,Rails 4.2。
答案 0 :(得分:1)
尝试以下方法:
class User < ActiveRecord::Base
has_many :friendships
has_many :friends, -> { order 'friendships.order ASC'}, through: :friendships
end
class Friendship < ActiveRecord::Base
belongs_to :user
belongs_to :friend, class_name: 'User'
end
@user.friends
会在order
friendships
订购的用户列表