我有两个标签用户和朋友,
用户表格如下所示:
[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的开发者,并希望使用有效记录来做到这一点,欢迎任何提示或想法。
答案 0 :(得分:1)
您应该创建高中,大学和毕业学校模型,并与用户建立关系。 朋友的数据应该是用户模型。
所以你应该
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