我与用户和合作伙伴之间存在一对一的关系。在我的用户模型中,我有以下内容:
has_one :partner, :class_name => "Partner"
如果“relation_status == coupled”,我想创建一个新合作伙伴,然后让用户转到新表单填写他/她的合作伙伴的信息。所以在我的UsersController中,我有
respond_to do |format|
if @user.save && @user.relation_status != "Coupled"
format .html { redirect_to @user, notice: "User was successfully created ID
was #{@id} "}
format.json { render json: @user, status: :created, location: @user }
elsif @user.save && @user.relation_status == "Coupled"
format .html { redirect_to partner_signup_path, notice: "Time for your patna"
}
format.json { render json: @user, status: :created, location: @user }
else
format.html { render action: "new" }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
在我的PartnersController中,我有基本的新操作和创建操作,可以成功创建新的合作伙伴。显然,通过执行上面的操作,无法将Partner的ID分配给User的外键 - partner_id。我怎样才能正确地做到这一点?我应该在用户模型中这样做吗?我是一个Rails新手。谢谢你的帮助。
答案 0 :(得分:0)
答案是让用户在UsersController中保持会话 - > session [:id] = @ user.id。 然后在PartnersController中,我做了: @partner = Partner.new(params [:user]) @ partner.save @user = User.find(session [:id]) @ user.partner = @partner
瞧。