找朋友并创建用户数组

时间:2012-08-06 15:48:08

标签: ruby-on-rails model associations social-networking

我有一个基本的社交网络。 我正在尝试创建一个返回用户数组的friends方法。有些user :ids位于:user_id属性中,有些位于:friend_id属性中。我不想退回current_user.id。我只想返回:name:id:uid属性。我不知道从哪里开始。

我希望我足够简化,如果我的问题缺乏信息,请告诉我。

谢谢!

class User < ActiveRecord::Base
  has_many :friendships, :conditions => {:accepted => true}
  has_many :inverse_friendships, :class_name => "Friendship", :foreign_key => "friend_id", :conditions => {:accepted => true}

  attr_accessible :name, :oauth_expires_at, :oauth_token, :provider, :uid

  def friends
    friendships.preload(:friend) + inverse_friendships.preload(:user)
  end
end

class Friendship < ActiveRecord::Base
  belongs_to :user
  belongs_to :friend, :class_name => "User"
  attr_accessible :accepted, :friend_id, :user_id, :friend
end

1 个答案:

答案 0 :(得分:0)

这个怎么样:

class User
  ...
  def friends
    friendships.map { |f| [f.name, f.id, f.uid] }
  end

end