2011-08-03 4 views
0

나는 사용자와 파트너 사이에 일대일 관계가 있습니다. 사용자가 그/그녀의 파트너에 대한 정보를 작성하는 새로운 형태로 갈 수 있도록 다음 "relation_status는 == 결합 된"경우일대일 관계 질문 - 레일

has_one :partner, :class_name => "Partner" 

나는 새로운 파트너를 만들려고하고 내 사용자 모델에서, 나는 다음과 같은이 . 그래서 내 UsersController에, 내 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 모델에서이 작업을 수행해야합니까? 나는 일종의 레일 초보자입니다. 도와 주셔서 감사합니다.

답변

0

대답은 UsersController -> session [: id] = @ user.id에서 세션을 유지하는 것입니다. 다음 PartnersController에서 수행 한 작업은 다음과 같습니다. @partner = Partner.new (params [: user]) @ partner.save @user = User.find (session [: id]) @ user.partner = @partner

Voila.