パラメータとは
railsアプリケーションは、フォームに記述した内容を送信した時、Parametersという名のハッシュ値に変換します。そしてRailsアプリケーション内部へと送り込みます。
rails sの画面で
Processing by BlogsController#create as HTML
Parameters: {"utf8"=>"✓",
"authenticity_token"=>"TTwmgIC9+5Z+/
TvIwMOGYiJv05QhpSEgp6oh9Kkbd8Fyu8JD2hp5Ds1E3P7no
jFyqAoWW1FXEnJww1BdmbZlcg==",
"blog"=>{"title"=>"hoge", "content"=>"fuga"},
"commit"=>"Create Blog"}
上記のような感じになります。
Parametersという名のハッシュ値ができていることが確認できます。
この送られてきたパラメータ(Parameter)は、Railsがデフォルトで常備しているparamsメソッドを使用することで取得できます。
def create
Blog.create(title: params[:blog][:title], content: params[:blog][:content])
end
上記はcreateアクションを作り、paramsメソッドを利用してparameterを取得しています。
parameterは詳細に見ると、{"blog"=>{"title"=>"hoge", "content"=>"fuga"}} のようになっています。
上記のようなハッシュの中にある、ハッシュ要素を抜き出すためには、
params[:blog][:title] params[:blog][:content]
このような形で抜き出すことができます。
また、シンボルを使って、ハッシュを抜き出す事ができる理由も、railsガイドに以下の記載がありました。
(引用)『 paramsハッシュはハッシュのように振る舞いますが、キー名にシンボルと文字列のどちらでも指定できる点がハッシュと異なります。 』
https://railsguides.jp/action_controller_overview.html#ハッシュと配列のパラメータ