前提・実現したいこと
新規登録時に入れたチェックを編集画面でも保持した状態で表示したい
それかチェックボックスどちらかを選択しないと編集更新ができないようにしたい
発生している問題・エラーメッセージ
編集画面に遷移するとチェックボックスのチェックが入っていない状態になっています。この状態で1つ以上チェックを入れて更新ボタンをクリックすれば問題なく更新はされますが、1つもチェックを入れないで更新しようとするとエラーが出てしまいます。
該当のソースコード
controller
1class Admin::ShopsController < ApplicationController 2 3def update 4 @shop = Shop.find(params[:id]) 5 @shop.update(shop_params) 6 redirect_to admin_shops_path, notice: "更新しました" 7end 8 9private 10 11def shop_params 12 eat_in = params[:status][:eat_in].present? ? params[:status][:eat_in] : "0" 13 take_out = params[:status][:take_out].present? ? params[:status][:take_out] : "0" 14 params.require(:shop).permit(:name, :image, :business_day, :budget, :area_id, :atmosphere_id, :atmosphere).merge(eat_in: eat_in, take_out: take_out) 15end 16 17end
edit
1<tr> 2 <td>販売形式</td> 3 <td> 4 <a><input type="checkbox" name="status[eat_in]" value="1" <%#= "checked='checked'" if @shop.status.include?(1) %>>イートイン</a> 5 <a><input type="checkbox" name="status[take_out]" value="1" <%#= "checked='checked'" if @shop.status.include?(1) %>>テイクアウト</a> 6 </td> 7</tr>
試したこと
コントローラーでinclude?メソッドを使って条件分岐させたり、edit.html.erbでコメントアウトしてる箇所でチェックボックスの内容を保持できないか書き方を変えて何パターンか試しました。
補足情報(FW/ツールのバージョンなど)
ruby 2.6.3
rails 5.2.5
Mac
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/05 01:12
2021/10/05 03:51