Rails6でWebアプリケーションを作成しているのですが、newアクションにおいてform_withを使用しています
このformでは、text_fieldやtext_areaに入力された値についてはそのままテーブルに保存し、チェックボックスの値(checked_value = 1)についてはチェックの有無によってテーブルに保存する値を指定したいと考えていますが、それを実装する方法がわかりません
createアクション内でif文を用いてparamsの値を調べてupdateで指定した値を保存するという方法を考えたのですが、どうやらアクション内ではparamsの値を直接取得することはできないみたいでエラーは出ませんが処理がスルーされてしまいます
何か良い方法はないのでしょうか
追記
処理内容は以下の通りになります
ビューから返るチェックボックスの値はチェック時に1、非チェック時に0です
コントローラー
ruby
1# products_controller.rb 2def create 3 first_user_id = current_user.id if params[:first_user_id] == 1 4 second_user_id = current_user.id if params[:second_user_id] == 1 5 @product = Product.create(product_params) 6 @product.update(build_user_id: current_user.id) 7 redirect_to product_path(@product.id) 8end 9 10private 11def product_params 12 params.require(:product).permit(:title, :statement, :first_user_id, :second_user_id) 13end
ビュー
haml
1.form 2 =form_with model: @project, local: true do |form| 3 .build-user{'data-current_user': current_user.id} 4 =current_user.name 5 =form.label :title, 'Title' 6 =form.text_field :title 7 =form.label :statement 8 =form.text_area :statement, 'Statement' 9 =form.label :first_user_id, 'First User' 10 =form.check_box :first_user_id 11 =form.label :second_user_id, 'Second User' 12 =form.check_box :second_user_id 13 =form.submit
回答1件
あなたの回答
tips
プレビュー