babie steps

作業療法記録

2つのモデルを同時にsaveする時のテンプレ

  class RecordInvalid < Exception; end

  def create
    @user = User.new(params[:user])
    @profile = Profile.new(params[:profile])
    User.transaction do
      if @user.valid? & @profile.valid?
        @user.save
        @profile.save
        respond_to do |format|
          format.html { redirect_to user_path(@user) }
        end
      else
        raise RecordInvalid.new
      end
    end
  rescue RecordInvalid
    respond_to do |format|
      format.html { render :action => "new" }
    end
  end

みたいな。