mehrere Verknüpfungen mit activerecord in rails

Ich bin den Aufbau einer kleinen twitter-Stil microblogging-Dienst, wo Benutzer kann nach anderen Benutzern und bekommen Sie einen feed Ihrer Nachrichten

Habe ich die folgenden Modelle:

class Follow < ActiveRecord::Base
  belongs_to :follower, :class_name => "User"
  belongs_to :followee, :class_name => "User"
end

class User < ActiveRecord::Base
  has_many :follows,   :foreign_key => 'follower_id',
                       :class_name => 'Follow'
  has_many :followers, :through => :follows
  has_many :followed,  :foreign_key => 'followee_id',
                       :class_name => 'Follow'
  has_many :followees, :through => :followed
  has_many :messages
end

class Message < ActiveRecord::Base
  belongs_to :user
end

Erhalten Sie einen feed für die aktuellen user, ich möchte führen Sie die folgende SQL-Abfrage:

SELECT * FROM follows JOIN users JOIN messages WHERE follows.follower_id = current_user.id AND follows.followee_id = users.id AND users.id = messages.user_id;

Was ist die richtige ActiveRecord Weg, dies zu tun?

InformationsquelleAutor Shalmanese | 2009-05-04

Schreibe einen Kommentar