前提・実現したいこと
Ruby on Rails のビューについての質問です。
ビューに設置したチェックボックスの値が『true』⇆ 『false』に移り変わる度に、
変更後の値をデータベースに保存したいです。
今現在はボタンを押すことで、データベースへの値を保存を行なっていますが、
クリックして値が変わる度に自動的に『Update』処理が走るようにしたいです。
おそらく、jQuery を使えば実現できるのだとおもいますが、わかりませんので、
サポート願います。
現在のソースコード(index.html.erb)
Ruby
1<div class="table-responsive"> 2 <table class="table table-striped table-bordered table-hover" style="table-layout:fixed;width:75%"> 3 <tr> 4 <td> 5 </td> 6 <% @kinds.each do |kind| %> 7 <th> 8 <p class="text-center"> 9 <%= kind.kind %> 10 </p> 11 </th> 12 <% end %> 13 </tr> 14 15 <% @stages.each do |stage| %> 16 <tr> 17 <th> 18 <p class="text-center"> 19 <%= stage.stage %> 20 </p> 21 </th> 22 <% @kinds.each do |kind| %> 23 <td align="center"> 24 <% if stage.end_flag %> 25 受付終了 26 <% else %> 27 <% @connection = Connection.find_by(stage_id: stage.id, kind_id: kind.id) %> 28 <% if @connection.invalid_flag %> 29 <%= check_box_tag :invalid_flag, value = "", @connection.invalid_flag, {:checked => true} %> 30 <% else %> 31 <%= check_box_tag :invalid_flag, value = "", @connection.invalid_flag, {:checked => false} %> 32 <% end %> 33 <%= button_to '反転', connection_path(@connection), {method: "patch"} %> 34 <% end %> 35 </td> 36 <% end %> 37 </tr> 38 <% end %> 39 </table> 40</div>
現在のソースコード(connection_controller.rb)の一部
Ruby
1def update 2 3 @connection = Connection.find_by(id: params[:id]) 4 5 @connection.invalid_flag = !@connection.invalid_flag 6 7 if @connection.save 8 flash[:notice] = "反転が完了しました" 9 redirect_to("/connections") 10 else 11 render 'index' 12 end 13 14 end
補足情報(FW/ツールのバージョンなど)
ruby 2.6.3p62
Rails 5.2.4.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/02 10:54