0

workorder.wostatus_id フィールドを更新するために、このようなコントローラー コードがいくつかあります。

def changestatus
 @workorder = Workorder.find(params[:id])
 @workorder.update_attributes(params[:wostatus_id])
 render nothing: true
end

そして、最終的に changestatus を実行するコーヒー スクリプト:

  receive: (event, ui) ->
    alert $(ui.item).attr('change_url')
    alert $(this).data('wostatus-id')
    $.ajax
      type: 'PUT'
      url: "http://localhost:5000/workorders/13/changestatus"
      data:
        wostatus_id: 3

これを機能させるために、url と wostatus_id をハードコーディングしました。

しかし、次の行はコーヒーから 3 を取得していません。

    @workorder.update_attributes(params[:wostatus_id])

この行をハード コードすると、wostatus が 3 に更新されます。

@workorder.update_attribute :wostatus_id, '4'

前もって感謝します!

4

1 に答える 1

1

あなたのCoffeeScriptのこのビット:

data:
  wostatus_id: 3

params次のような が表示されます。

{ :wostatus_id => 3 }

だからあなたが言うとき:

@workorder.update_attributes(params[:wostatus_id])

あなたは本当に言っています:

@workorder.update_attributes(3)

それはあまり意味がありません。update_attributesキーと値を指定する必要があります。

@workorder.update_attributes(:wostatus_id => params[:wostatus_id])
于 2013-01-09T01:36:51.987 に答える