html のデータに基づいて Workorder.wostatus_id を変更したいと思います。
私のインデックス html では、wostatus.id を次のように保存しています。
<span id="woid">4</span>
workorder.wostatus_id = 4 を更新したい
これは workorders.js.coffee にありますが、機能していません:
$.ajax
type: 'POST'
url: 'http://localhost:5000/workorders'
data:
workorder:
wostatus_id: $("#woid").val()
たぶん、正しい作業指示レコードに到達していないのでしょうか?
これを行ってもworkorder.wostatus_idは更新されませんでした
$.ajax
type: 'POST'
url: "http://localhost:5000/workorders"
data:
workorder:
wostatus_id: '3'
これもうまくいきませんでした:
$.ajax
type: 'POST'
url: "http://localhost:5000/workorder/17"
data:
wostatus_id: '7'
私は何か大きな時間を逃しています。
ajax POST は、workorder コントローラーでこのコードを実行しますか????
# PUT /workorders/1
# PUT /workorders/1.json
def update
@workorder = Workorder.find(params[:id])
respond_to do |format|
if @workorder.update_attributes(params[:workorder])
format.html { redirect_to @workorder, notice: 'Workorder was successfully updated.' }
format.json { head :ok }
else
format.html { render action: "edit" }
format.json { render json: @workorder.errors, status: :unprocessable_entity }
end
end
アップデート:
これをworkorderコントローラーに追加しました:
def changestatus
@workorder = Workorder.find(params[:id])
@workorder.update_attribute :wostatus_id, '4'
render nothing: true
end
これをルートに追加しました:
resources :workorders do
member { put :changestatus }
end
これは現在 js.coffee にあります。
$.ajax
type: 'PUT'
url: "http://localhost:5000/workorders/11/changestatus"
data:
wostatus_id: 4
(次のステップが機能するまで、私は物事をハードコーディングしています。)
SO - これは機能し、workorder 11 は wostatus_id を 4 に変更します。
しかし、今、html から正しい情報を取得するのに問題があります。HTML には必要な 2 つのデータ フィールドが含まれています。1 つは作業順序用で、もう 1 つは wostatus_id です。
更新 URL の html は次のとおりです。
<div class="false" data-change-url="http://localhost:5000/workorders/16/changestatus">
これでそのURLが取得されると思いましたが、機能しません:
$(this).data('change-url')