2

我正在尝试设置一个应用程序,其中包含可以由用户或现有组组成的组。

例子:

  • 用户AndyBobCharlieDavid属于1st forwarders组。
  • 用户EddyFrankGeorgeHowardIggyJack1st midfielders组中。
  • 用户KennyLennyMaxNedOscarPeterQuin位于第一防守组。
  • 用户Rita1st 守门员组中的唯一用户。
  • 用户AndyBobEddyFrankKenny也属于alpha 篮球运动员组。
  • 1前锋、第 1 中场第 1 后卫第 1 守门员组属于第 1 足球运动员组。
  • 1 前锋第 2 中场第 3 后卫第 4 守门员全明星球员组中。

据我了解,这将需要一组多态、自引用的模型。

基于这样的理解,我目前拥有的三个模型和对应的类是:

用户
- id:整数
- 名称:字符串
- 加上其他个人特定数据

class User < ActiveRecord::Base 
  has_many :memberships, :as => :child 
  has_many :groups, :through => :memberships 
end


- id:整数
- 名称:字符串
- 加上其他特定于组的数据

class Group < ActiveRecord::Base
  # parental membership role
  has_many :memberships
  has_many :users, :through => :memberships

  # child membership role
  has_many :memberships, :as => :child  
end

会员资格
- child_id:整数
- group_id:整数
- 会员类型:字符串
- 加上其他会员特定数据

class Membership < ActiveRecord::Base
  belongs_to :child, :polymorphic => true
  belongs_to :group
end

当我尝试通过类似的方式访问孩子时,Membership.first.child我总是会得到=> nil回应。

我的模型和课程设置是否正确?
如果没有,我做错了什么?
如果是这样,我如何拉孩子的信息?

或者我是否错误地处理了这个问题,如果是这样,我应该如何处理它?

4

1 回答 1

1

多态关联列应该是child_idchild_type

于 2011-08-20T17:08:36.920 回答