前提・実現したいこと
VIEWからControllerにparamを送り、内容に応じて処理を分岐させたい。
発生している問題・エラーメッセージ
・view(new.html.erb)側にform_forでのテキスト入力およびhidden_fieldで, paramの値をセット
・Controllerのcreateアクションを呼び出し(paramの値を渡す)
・Controllerのcreateアクションでは(hidden_fieldで入力された)paramの値を判別し処理を分岐(if文)
を実装したいのですが、意図したようにController側で処理分岐ができません。
該当のソースコード
呼び出し側のView
new.html.erb
1 2<div class="row"> 3 <div class="col-md-6 col-md-offset-3"> 4 <%= form_for(@task, url: newtask_path) do |f| %> 5 <%= render 'shared/error_messages', object: f.object %> 6 7 <%= f.hidden_field :from_challenge_flg, :value => 'True' %> 8 <%= f.hidden_field :challenge_id, :value => @challenge_id %> 9 10 <%= f.label :title %> 11 <%= f.text_field :title, class: 'form-control' %> 121 13 <%= f.label :discription %> 14 <%= f.text_area :discription, class: 'form-control' %> 15 16 <%= f.label :close_condition %> 17 <%= f.text_field :close_condition, class: 'form-control' %> 18 19 <%= f.label :due_date %> 20 <%= f.text_field :due_date, class: 'form-control' %> 21 22 23 <%= f.submit "Generate New Task", class: "btn btn-primary" %> 24 <% end %> 25 </div> 26</div>
呼び出されるContolloerの処理(create)
tasks_controller.rb
1def create 2 3 @from_challenge_flg=params[:from_challenge_flg] 4 @challenge_id = params[:challenge_id] 5 6 7 if @from_challenge_flg =='True' 8 #処理A 9 else 10 #処理B 11 end
上記のControllerのCreateアクションでif文の[#処理A]を実行したい場合でも毎回[#処理B]が実行されます。
どうも@from_challenge_flg=params[:from_challenge_flg]での値がセットされていないようです。
試したこと
consoleおよびdebuggerを差し込んで実行してみましたが、
パラメタについては全てセットされているように見えますが、
Started POST "/newtask" for ::1 at 2020-01-21 10:06:24 +0900 Processing by TasksController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"A07Nx19iGdhuCm2rwXsKBAGIpL2/scV+8zghHof0NO7RJR/GYvkO5YTv9YOfVtlFMaIAg0GpWePrvPVBxRuMgw==", "task"=>{"from_challenge_flg"=>"True", "challenge_id"=>"302", "title"=>"テスト", "discription"=>"テスト", "close_condition"=>"テスト", "due_date"=>"テスト"}, "commit"=>"Generate New Task"}
@from_challenge_flg=params[:from_challenge_flg]の箇所については値がセットできていないようです。
(byebug) @from_challenge_flg nil
補足情報(FW/ツールのバージョンなど)
ruby 2.6.0p0 (2018-12-25 revision 66547) [x64-mingw32]
Rails 5.1.7
※当方、超初心者でして質問の仕方も含めて不適当な点もあるかもしれません。申し訳ないですがアドバイスお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。