チェックボックスのパラメーターを取得できない
下記の<div class-"form-checkbox">内のチェックボックス選択によるパラメータ取得がなぜかうまく行かず、
後続処理が進まないことを助けていただけないでしょうか。
下記の記述によりチェックボックス事にパラメータを設定して提出時に受け取るようにしています。
しかし、controllerで上手くパラメータを活用できていません。
パラメータがあれば[invoice_flg]項目に値"1"を入れるようにしています。
が、controllerの記述でパラメータが認識できていません。
【view】
<div class="main posts-new"> <div class="container"> <h1 class="form-heading">新規作成</h1> <%= form_tag("/sheets/create") do %> <div class="form"> <div class="form-body"> <% @sheet.errors.full_messages.each do |message| %> <div class="form-error"> <%= message %> </div> <% end %> <a>区分選択</a> <br> <div class="form-checkbox"> <%= check_box :sheet, :invoice_flg, {class: "check_box"}, checked_value = "1",nil %> <%= label :invoice_flg, "請求" %> <%= check_box :sheet, :cf_flg, {class: "check_box"}, checked_value = "1",nil %> <%= label :cf_flg, "締日" %> <%= check_box :sheet, :a_cf_flg, {class: "check_box"}, checked_value = "1",nil %> <%= label :a_cf_flg, "会計締" %> <%= check_box :sheet, :req_flg, {class: "check_box"}, checked_value = "1",nil %> <%= label :req_flg, "情報課作業" %> <%= check_box :sheet, :beg_m_flg, {class: "check_box"}, checked_value = "1",nil %> <%= label :beg_m_flg, "月初翌営業日" %> <br> <%= check_box :sheet, :fare_flg, {class: "check_box"}, checked_value = "1",nil %> <%= label :fare_flg, "運賃締" %> <%= check_box :sheet, :monthly_flg, {class: "check_box"}, checked_value = "1",nil %> <%= label :monthly_flg, "月次" %> <%= check_box :sheet, :mnext_flg, {class: "check_box"}, checked_value = "1",nil %> <%= label :mnext_flg, "月次翌営業日" %> </div> </div> <input type="submit" value="投稿"> </div> </div> <% end %> </div> </div>
【log】(該当箇所に#コメントを入れています)
Started POST "/sheets/create" for ::1 at 2021-10-08 15:16:53 +0900 Processing by SheetsController#create as HTML Parameters: {"utf8"=>"✓", #ここにパラメータとして[invoice_flg]があるのに "authenticity_token"=>"OgO02tTdr8SaZTNoHMKfLq86gtTkDQ39QLESPQ0lwKaFA4Nv/p67i19LQjarwigvNTV/0BZlWOPNbnVwrTADMw==", "duty_date"=>"2021-10-07", "a_code"=>"", "c_code"=>"", "i_code"=>"", "m_code"=>"02445", "set_code"=>"", "sheet"=>{"invoice_flg"=>"1"}} User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]] ↳ app/controllers/application_controller.rb:5 User Load (0.6ms) SELECT "users".* FROM "users" WHERE "users"."emp_code" = ? LIMIT ? [["emp_code", ""], ["LIMIT", 1]] ↳ app/controllers/sheets_controller.rb:24 CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."emp_code" = ? LIMIT ? [["emp_code", ""], ["LIMIT", 1]] ↳ app/controllers/sheets_controller.rb:29 User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."emp_code" = ? LIMIT ? [["emp_code", "02445"], ["LIMIT", 1]] ↳ app/controllers/sheets_controller.rb:34 CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."emp_code" = ? LIMIT ? [["emp_code", ""], ["LIMIT", 1]] ↳ app/controllers/sheets_controller.rb:39 CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."emp_code" = ? LIMIT ? [["emp_code", ""], ["LIMIT", 1]] ↳ app/controllers/sheets_controller.rb:44 (0.0ms) begin transaction ↳ app/controllers/sheets_controller.rb:54 #controllerでnilと認識され、うまく保存されない。 Sheet Create (2.2ms) INSERT INTO "sheets" ("created_at", "updated_at", "duty_date", "m_code", "m_name", "creator_code", "creator_name") VALUES (?, ?, ?, ?, ?, ?, ?) [["created_at", "2021-10-08 06:16:53.247569"], ["updated_at", "2021-10-08 06:16:53.247569"], ["duty_date", "2021-10-07"], ["m_code", "02445"], ["m_name", "aaaaa"], ["creator_code", "02445"], ["creator_name", "aaaaa"]] ↳ app/controllers/sheets_controller.rb:54 (19.9ms) commit transaction ↳ app/controllers/sheets_controller.rb:54 Redirected to http://localhost:3000/sheets/index Completed 302 Found in 42ms (ActiveRecord: 23.7ms)
【contrller】[#!!!!!!!!!!!!!!!!!!!!該当処理!!!!!!!!!!!!!!!!!!!!!!!]直下が該当のコード
def create @sheet = Sheet.new( duty_date: params[:duty_date], creator_code: @current_user.emp_code, creator_name: @current_user.emp_name, ) #選択ユーザをパラメータから取得し、ユーザ項目にセット #C当番情報セット if @c_user = User.find_by(emp_code: params[:c_code]) @sheet.c_code = @c_user.emp_code @sheet.c_name = @c_user.emp_name end #A当番情報セット if @a_user = User.find_by(emp_code: params[:a_code]) @sheet.a_code = @a_user.emp_code @sheet.a_name = @a_user.emp_name end #月次当番情報セット if @m_user = User.find_by(emp_code: params[:m_code]) @sheet.m_code = @m_user.emp_code @sheet.m_name = @m_user.emp_name end #請求情報セット if @i_user = User.find_by(emp_code: params[:i_code]) @sheet.i_code = @i_user.emp_code @sheet.i_name = @i_user.emp_name end #情報課担当者情報セット if @set_user = User.find_by(emp_code: params[:set_code]) @sheet.set_code = @set_user.emp_code @sheet.set_name = @set_user.emp_name end #!!!!!!!!!!!!!!!!!!!!該当処理!!!!!!!!!!!!!!!!!!!!!!! #当番区分毎にフラグセット if params[:invoice_flg] == "1" @sheet.invoice_flg = "1" end if @sheet.save flash[:notice] = "シートを作成しました" redirect_to("/sheets/index") else render("sheets/new") end end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。