就我而言,用户通过友谊与其他用户相关。我想通过他们拥有的朋友/友谊来订购我的用户。
class User < ActiveRecord::Base
has_many :friendships
has_many :inverse_friendships, :class_name => "Friendship", :foreign_key => "friend_id"
end
class Friendship < ActiveRecord::Base
belongs_to :user
belongs_to :friend, :class_name => "User"
end
NB在我的情况下,我使用 postgres
我目前正在使用
a = User.all.collect {|x| [x.id, x.friends.length]};
a = a.sort {|x,y| y[-1] <=> x[-1]}
x.friends
是一种通过Friendship.where('friend_id = ? OR user_id = ?', self, self)
返回所有朋友的方法。我认为这不是最理想的,因为它会为每个用户提出请求。
答案 0 :(得分:0)
我不确定我的请求是否正常,因为我现在无法在真正的数据库上进行测试。但你应该这样做:
@model List<Notification>
它仅适用于PostgreSQL 9.1及更高版本。