ruby on rails-多对多创建关系



有我的3个类。对不起,我缺乏术语,我对此很不在行。

class User < ActiveRecord::Base
  has_many :memberships
  has_many :groups, :through => :memberships
end
class Group < ActiveRecord::Base
  has_many :memberships
  has_many :users, :through => :memberships
end
class Membership < ActiveRecord::Base
  belongs_to :group
  belongs_to :user
end

在我的Group Controller中,我想在创建方法中执行以下操作

@user = User.first 'Confirmed that this user exists
@group = @user.groups.new(params[:group])
if @group.save
  ... etc

我遇到的问题是,成员资格表是空白的。例如,如果我转到rails控制台,键入membership.all,它都是空白的,但会生成Group。

但是,如果我转到控制台并执行以下操作,它将正确地生成Membership行

@user = User.first
@user.groups.create(:name => "name")
Membership.all

会员资格链接正确。

我是不是控制器出了什么问题?

谢谢你们的帮助!

尝试在控制器中使用.build而不是.new,如下所示:

@group = @user.groups.build(params[:group])

相关内容

  • 没有找到相关文章