リクエスト数を1回にしたいです。
下記のコードでputをしているのですが、access_logをみると21回のリクエストが有りました。
まずどこを疑ったらよいでしょうか。。
###該当のソースコード JSとHTML
javascript
1 $('.menu_update').change(function () { 2 var name = $(this).attr('name'); 3 var id = $(this).attr('id'); 4 var val = $(this).val(); 5 var params = {}; 6 params[name] = val; 7 $.ajax({ 8 type: "PUT", 9 url: "/menus/" + id, 10 data: params 11 }); 12 });
html
1<div class="mdl-layout__tab-panel is-active" id="top"> 2 <h1>今日のメニュー</h1> 3 <table class="mdl-data-table"> 4 <thead><tr> 5 <th>Type</th><th>Name</th><th>Food</th><th>Weight</th><th></th> 6 </tr></thead> 7 <tbody><tr class="mdl-color--amber-200"> 8 <td>昼</td> 9 <td>おこわ</td> 10 <td>ごはん</td> 11 <td><div class="mdl-textfield mdl-js-textfield" style="width: 50px;"><input class="mdl-textfield__input menu_update" id="31" type="text" name="menu[weight]" /><label class="mdl-textfield__label" for="menu_13">13</label></div></td> 12 <td><a data-confirm="削除しますか?" class="material-icons" rel="nofollow" data-method="delete" href="/menus/31">clear</a></td> 13 </tr></tbody> 14 </table> 15<br /> 16</div>
下記のようなlogが21回来ます
log
1xxx.xxx.xxx.xxx - dev [06/Jul/2016:05:33:07 +0900] "PUT /menus/31 HTTP/1.1" 302 116 "http://hoge.hoge/menus" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
controllerの中
controllerの中の処理はupdateしているだけだと思います。。
ruby
1 # PATCH/PUT /menus/1 2 # PATCH/PUT /menus/1.json 3 def update 4 respond_to do |format| 5 if @menu.update(menu_params) 6 format.html { redirect_to @menu, notice: 'Menu was successfully updated.' } 7 format.json { render :show, status: :ok, location: @menu } 8 else 9 format.html { render :edit } 10 format.json { render json: @menu.errors, status: :unprocessable_entity } 11 end 12 end 13 end
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/07 09:44
退会済みユーザー
2016/07/08 03:04