0

PUTチェックアウト プロセスの各ステップで、リクエストを介して注文が更新されます。ただし、州の1つに、私のサイトにリダイレクトするサードパーティに送信するフォームがあり、更新メソッドを呼び出しますGET(これを制御することはできません)。

respond_withコードが完全に無視されているように見え、Missing Template checkout/updateエラーが発生するのはなぜですか? 当たっているはず#editです。

CheckoutController.rb

before_filter :load_order

def update
  if @order.update_attributes(params[:order])
    @order.next
  end
  respond_with(@order, :location => checkout_state_url(@order.state))
end

ルート.rb

match '/checkout/update/:state' => 'checkout#update', :as => :update_checkout
match '/checkout/:state' => 'checkout#edit', :as => :checkout_state
match '/checkout' => 'checkout#edit', :state => 'client_details', :as => :checkout
4

1 に答える 1

0

respond_withHTTP動詞と、リソースにエラーがあるかどうかによって、動作が異なるように見えます。ここここを参照してください。

次のコードは私のために働いた:

def update
    if @order.update_attributes(params[:order]) && @order.next
        respond_with(@order) { |format| format.html { redirect_to checkout_state_url(@order.state) } }
    else
        respond_with(@order) { |format| format.html { render :edit } }
    end
end
于 2012-05-03T16:17:16.740 に答える