有我的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中,我想在create方法
中执行以下操作@user = User.first 'Confirmed that this user exists
@group = @user.groups.new(params[:group])
if @group.save
... etc
我遇到的问题是成员资格表是空白的,如果我转到rails控制台,并输入Membership.all,它会被清空,但是该组会生成。
但是,如果我转到控制台并执行以下操作,它将正确生成成员资格行
@user = User.first
@user.groups.create(:name => "name")
Membership.all
会员资格正确关联。
我在控制器中做错了吗?
感谢帮助伙伴/加尔斯!
答案 0 :(得分:0)
尝试在控制器中使用.build而不是.new,如下所示:
@group = @user.groups.build(params[:group])