在Ruby on Rails中建模组的好方法是什么

时间:2012-07-04 22:28:43

标签: ruby-on-rails sqlite postgresql

我最近开始学习Rails,并在http://ruby.railstutorial.org完成了示例应用。我正在尝试将用户创建的组添加到示例社交网络。我已经陷入困境,我应该如何模拟这个群体。我知道应该有一个user_id谁拥有该组,并且应该有名称和描述的字符串。除此之外,我不知道组数据模型的其余部分应该是什么样子。提前谢谢。

2 个答案:

答案 0 :(得分:1)

如果您希望用户属于多个群组,您的关系应该是这样的

class Group < ActiveRecord::Base
  belongs_to :owner, :class_name => "User"
  has_many :memberships
  has_many :members, :through => :memberships
end

class Membership < ActiveRecord::Base
  belongs_to :member, :class_name => "User" 
  belongs_to :group
end

class User < ActiveRecord::Base
  has_many :memberships
  has_many :groups, :through => :memberships
  has_many :owned_groups, :class_name => "Group", :foreign_key => "owner_id"
end

答案 1 :(得分:0)

这样的事情怎么样?

class Group < ActiveRecord::Base
  has_many :users
end

class User < ActiveRecord::Base
  belongs_to :group
end