1

私はそのようなjqueryコードを持っています:

  $(".quantity").blur(function() {
    console.log("upd");
    $.ajax({
    url: "/line_items/update_quantity/",
    type: "GET",
    data: {id: $(this).attr('id'), quantity: $(this).attr('quantity'), cart: $(this).attr('cart')} 
    });
  });

しかし、このコードは私にそのようなURLを生成します:

.../line_items/update_quantity/?id=29&quantity=111&cart=27

しかし、私はそのようなURLが必要です:

.../line_items/update_quantity/id=28&quantity=2&cart=27

それなし ?

A には次のようなルートがあります。

match 'line_items/:action/id=:id&quantity=:quantity&cart=:cart' => 'line_items#update_quantity'

試してみましたが、何もうまくいきません。お願い助けて。

def update_quantity
    @cart = current_cart
    @line_item = LineItem.find(params[:id])
    respond_to do |format|
      if @line_item.update_attribute(:quantity, params[:quantity]) #&& @cart.id == params[:cart]
        format.html { redirect_to(@line_item, :notice => 'Line item was successfully updated.') }
        format.js
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @line_item.errors, :status => :unprocessable_entity }
      end
    end
  end
4

2 に答える 2

3

クエリ パラメータは後で開始する必要があります?

HTTP/1.1: プロトコル パラメータ

「http」スキームは、HTTP プロトコルを介してネットワーク リソースを検索するために使用されます。このセクションでは、http URL のスキーム固有の構文とセマンティクスを定義します。

http_URL = "http:" "//" ホスト [ ":" ポート ] [ abs_path [ "?" クエリ]]

あなたのルートは

match 'line_items/:action/:id' => 'line_items#update_quantity'

&quantity=:quantity&cart=:cart不要です

またはそれ以上

resources :line_items do
  get :update_quantity, :on => :member
end
于 2012-05-11T16:26:05.360 に答える