有我的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])