フォームに入力した値をコントローラーで取り出したいことがよくあるのですが、いつも忘れてググっているのでメモに残しておきます。
##結論
###送信したデータ一式
params[:<送ったモデル名>]
###特定のカラムのデータ
params[:<送ったモデル名>][:<カラム名>]
##具体例
例えば、フォームが以下のような場合。
<%= form_with(model: @glider_flight, local: true) do |f| %>
# フォームの各パーツ
<% end %>
glider_flight
というモデル宛てにデータを送信したら、コントローラーでは
params[:glider_flight]
と記述する。
binding.pryで処理を止めて中身を確認すると、次のようなデータが取れていました。
=> #<ActionController::Parameters {"date"=>"2022-02-08", "departure_and_arrival_point"=>"", "glider_type"=>"", "glider_ident"=>"", "is_winch"=>"true", "flight_role"=>"機長", "takeoff_time"=>"21:02", "landing_time"=>"21:09", "release_alt"=>"400", "number_of_landing"=>"1", "takoff_and_landing_place"=>""} permitted: false>
また、この中のtakeoff_time
カラムに入った値を取り出したいときは
> params[:glider_flight][:takeoff_time]
=> "21:02"
同様に、date
カラムは
> params[:glider_flight][:date]
=> "2022-02-08"
間違っていたらやさしく教えてください。
##参考サイト