2

我有这样的模型:

class Person
has_many :groups
has_many :group_memberships, :foreign_key => "member_id"
end

class Group_Membership
 belongs_to :member, :class_name => 'Person'
 belongs_to :group
end

class Group
belongs_to :person
has_many :group_memberships
has_many :members, :class_name => "Person", :through => "group_memberships", :foreign_key => "member_id"
end

我只是在徘徊,如果一个人想加入一个组,这个人将创建一个 group_membership ,它需要个人本身和组的 id。如果我在组视图上做一个没有表单的创建按钮是对的吗?def create既然我必须通过正确的方式传递两个 ID,那会怎样build?谢谢。

4

1 回答 1

0

您更有可能从 Person 或 Group 实例创建 GroupMembership,因此只需要一个 id。因此,当您谈论使用组视图时 - 我假设您的意思是在您的显示视图中包含某种“添加成员”表单,因此您对该表单的操作可能会被调用create_membership并且看起来像这样:

def create_membership
  @group = Group.find params[:id]
  if @group.group_memberships.create( :member_id => params[:member_id])
    redirect_to @group
  else
     render :action => 'show'
  end
end
于 2011-05-18T20:09:49.660 回答