質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

1回答

292閲覧

送信(保存)ボタンを複数作成し、どのボタンを押したかによって処理を分けたい

miki-m

総合スコア0

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2022/01/22 05:44

編集2022/01/25 20:34

前提・実現したいこと

初めて一人で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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ruby

1if params[:accept] == "保存ボタンA" 2 redirect_to root_path 3elsif params[:advance] == "保存ボタンB" 4 redirect_to patients_path 5elsif params[:hospitalization] == "保存ボタンC" 6 redirect_to new_patient_path 7end

これでいかがでしょうか

投稿2022/01/24 08:56

polo

総合スコア108

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miki-m

2022/01/25 11:34

ご回答ありがとうございました。 お教えいただいたコードで無事保存ボタンの値を取得しその後の処理を分けることができました。 あとはカラム3に「1」または「2」を保存する部分の記述がまだわかっていないので、考えたいと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問