Ruby on rails 活动记录-团体教育
我有两个tabel用户和朋友 用户选项卡如下所示: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
[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将用户朋友分组:
- 按高中名称分组用户朋友
- 按学院名称分组用户朋友
- 按毕业生学校名称分组用户朋友
我是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,所以这可能不是你真正想要的。但我认为底部的代码应该给出一个好主意,如何实现您想要的。