Ruby on rails 活动记录-团体教育

Ruby on rails 活动记录-团体教育,ruby-on-rails,ruby,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby,Ruby On Rails 3,Activerecord,我有两个tabel用户和朋友 用户选项卡如下所示: [id, name, image, location, highschool_name, highschool_year, college_name, college_year, graduteschool_name, graduate_year ] [id, uid, name, image, higschool_name, college_name, graduateschool_name, user_id] 朋友泰贝尔是这样的: [i

我有两个tabel用户和朋友

用户选项卡如下所示:

[id, name, image, location, highschool_name, highschool_year, college_name, college_year, graduteschool_name, graduate_year ]
[id, uid, name, image, higschool_name, college_name, graduateschool_name, user_id]
朋友泰贝尔是这样的:

[id, name, image, location, highschool_name, highschool_year, college_name, college_year, graduteschool_name, graduate_year ]
[id, uid, name, image, higschool_name, college_name, graduateschool_name, user_id]
我想通过eduaction将用户朋友分组:

  • 按高中名称分组用户朋友
  • 按学院名称分组用户朋友
  • 按毕业生学校名称分组用户朋友
就像我制作的这个photoshop模型:


我是Rails 3的开发人员,希望使用active record来实现这一点,欢迎提供任何提示或想法。

您应该创建高中、大学和研究生院模型,并使用与用户的关系。 和朋友的数据应该在用户模型上

所以你应该

User
  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
  belongs_to :higschool
  belongs_to :college
  belongs_to :graduateschool

Friendship
  belongs_to :user
  belongs_to :friend, :class_name => "User"

Higschool
  has_many :users

College
  has_many :users

Graduateschool
  has_many :users
所以,现在我想你可以这样做

@higschool_friends = Hash[]
current_user.friends.group_by(&:higschool) do | higschool, friends |
  @higschool_friends[higschool] = friends
end

@college_friends = Hash[]
current_user.friends.group_by(&:college) do | college, friends |
  @college_friends[college] = friends
end

@graduateschool_friends = Hash[]
current_user.friends.group_by(&:graduateschool) do | graduateschool, friends |
  @graduateschool_friends[graduateschool] = friends
end

哇,我真的需要那么多模型吗?我知道将来我必须有一个单独的教育模型,但是为什么朋友数据需要在用户模型中呢?我认为朋友也是用户。但我从你对另一个答案的评论中看到,你正在使用Facebook api,所以这可能不是你真正想要的。但我认为底部的代码应该给出一个好主意,如何实现您想要的。