やりたいことはチェックボックスにチェックした行だけupdate_allしたいのですが、
一度ブラウザをリロードしないとチェックが効きません(チェックのパラメーターが飛ばない)
- VIEW
RUBY
1<%= form_tag({controller: "lists", action: "update_all"}, {multipart: true}) do %> 2<div class="form-group"> 3 <div class="row"> 4 <div class="col-xs-2"align="right"><%= label_tag :flag, :一括フラグ変更, params[:flag] %></div> 5 <div class="col-xs-4"><%= select_tag :flag, options_for_select(['作業無し','作業中','作業終了']),{:class => "form-control" } %></div> 6 <%= submit_tag nil, data: { confirm: '変更してもよろしいですか?'},:disable_with => "Wait...",:class => 'btn btn-primary'%> 7 8~中略~ 9<td><%= check_box_tag "checked_items[]", list.id %></td> 10 11~中略~ 12<% end %> 13
- controller
Ruby
1def update_all 2 respond_to do |format| 3 if params[:checked_items].nil? 4 format.html { redirect_to :back, :alert => "チェックが入ってません" } 5 format.json { head :no_content } 6 elsif params[:flag].blank? 7 format.html { redirect_to :back, :alert => "フラグが選択されてません" } 8 format.json { head :no_content } 9 else 10 @lists = List.where( :id => params[:checked_items]).update_all( :flag => params[:flag], :updated_at => Time.now ) 11 format.html { redirect_to :back, :notice => "フラグを変更しました。" } 12 format.json { head :no_content } 13 end 14 end 15 end
よろしくお願いいたします。
補足情報
Rails 4.2.6
回答1件
あなたの回答
tips
プレビュー