前提・実現したいこと
初めて一人でRailsのアプリケーションを作成している初心者です。
患者の登録画面にて、保存ボタンを3つ作成し、それぞれ処理を分けたいのですが、恥ずかしながら保存ボタンからの値の取得方法がわからないため、ご教示いただけないでしょうか。
rails 6.0.0
詳細
患者登録画面にて、カラム1(number)及び2(name)の情報を入力後、どの保存ボタンを押しても2個の情報をテーブルに保存させる。
保存ボタンAを押すとカラム3(condition)に「1」を更に保存しroot_pathへ遷移
保存ボタンBを押すとカラム3(condition)に「1」を更に保存しpatients_pathへ遷移
保存ボタンCを押すとカラム3(condition)に「2」を更に保存しnew_patient_pathへ遷移
(遷移先は後ほど変更予定)
を実現したいです。
各保存ボタンにnameを付与し、その値によって処理を分けたいと思い、当サイトや、Qiitaの記事を色々読み、参考になりそうな記事をヒントに色々試行錯誤したのですが、うまくいきませんでした。
(最初idを付与して試していましたが、それも方法がわからず断念しました)
よろしくお願いします。
該当のソースコード
new.html.erb
1<%= form_with(model: @patient, local: true) do |f| %> 2 <div class="new-patients"> 3 <div class="category patient-number"> 4 <div class="weight-bold-text"> 5 患者ID 6 <span class="indispensable">必須</span> 7 </div> 8 <%= f.text_field :number, class:"input-form", id:"patient-number", maxlength:"8" %> 9 </div> 10 <div class="category patient-name"> 11 <div class="weight-bold-text"> 12 患者氏名 13 <span class="indispensable">必須</span> 14 </div> 15 <%= f.text_field :name, class:"input-form", id:"patient-name", maxlength:"10" %> 16 </div> 17 <div class="submit"> 18 <div class="submit-type"> 19 <div class='submit-btn'> 20 <%= f.submit "保存ボタンA" ,class:"submit-orange-btn", name:"accept" %> 21 </div> 22 </div> 23 <div class="submit-type"> 24 <div class='submit-btn'> 25 <%= f.submit "保存ボタンB" ,class:"submit-orange-btn", name:"advance" %> 26 </div> 27 </div> 28 <div class="submit-type"> 29 <div class='submit-btn'> 30 <%= f.submit "保存ボタンC" ,class:"submit-orange-btn", name:"hospitalization" %> 31 </div> 32 </div> 33 </div> 34 </div> 35<% end %>
patients_controller
1class PatientsController < ApplicationController 2 def index 3 @patients = Patient.all 4 end 5 6 def new 7 @patient = Patient.new 8 end 9 10 def create 11 Patient.create(patient_params) 12 if params[:accept] 13 redirect_to root_path 14 elsif params[:advance] 15 redirect_to patients_path 16 elsif params[:hospitalization] 17 redirect_to new_patient_path 18 end 19 end 20 21 private 22 23 def patient_params 24 params.require(:patient).permit(:number, :name, :submit.name) 25 end 26 27end
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/25 11:34