2011-08-03 18 views
0

私はユーザーとパートナーの間に1対1の関係があります。私のUserモデルでは、私は次のようしている:1対1の関係質問 - レール

has_one :partner, :class_name => "Partner" 

私は「relation_statusは==結合された」場合は、新しいパートナーを作成し、ユーザーが彼/彼女のパートナーに情報を記入する新しいフォームに移動したいです。だから私のがUserControllerに、私は私のPartnersControllerで

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 

を持って、私は基本的に新しいを持っているし、正常に新しいパートナーを作成するアクションを作成します。明らかに、パートナーのIDをユーザーの外部キーに割り当てる方法はありません - 私が上記のことを行うことでpartner_idが自動的に割り当てられます。これを正しく行うにはどうすればいいですか?代わりにUserモデルでこれを行うべきですか?私は一種のRails初心者です。助けてくれてありがとう。

答えて

0

答えは、UsersController - > session [:id] = @ user.idにセッションを維持することです。 PartnersControllerで、私はしました: @partner = Partner.new(params [:user]) @ partner.save @user = User.find(session [:id]) @ user.partner = @partner

Voila。