У меня странный сценарий: я хотел бы заказать все сообщения P к тому моменту, когда подружился создатель P и текущий пользователь.
Результатом будет список сообщений с сообщениями новых друзей в сообщениях верхнего и старшего друзей внизу. Мы можем предположить, что все пользователи являются друзьями всех других пользователей, но каждая дружба имеет разные времена создания.
У меня есть модели Post, User и Friendship. Сообщения принадлежат пользователям, а пользователи имеют много дружеских отношений.
class User < ActiveRecord::Base
has_many :friendships
has_many :friends, :through => :friendships
has_many :inverse_friendships, :class_name => "Friendship", :foreign_key => "friend_id"
has_many :inverse_friends, :through => :inverse_friendships, :source => :user
end
class Friendship < ActiveRecord::Base
belongs_to :user
belongs_to :friend, :class_name => "User"
end
class Post < ActiveRecord::Base
belongs_to :user
end
Какой лучший способ сделать это? Спасибо!