#paramsとは
railsのアプリケーション利用者がサーバーに対して送ってきた値を格納する箱です
例えば以下のようなform(form_tagを使用)から送られてきたデータの場合
new.html.erb
<input type="text" name="content">
params[:content]としてコントローラーに送られます。
この時、nameに指定するのはキーの名前です。paramsはハッシュオブジェクトのようなものなので、キー(カラム名)に対して入力された値が格納されています
そして送られたコントローラー先で、テーブルにレコードを追加するcreateメソッドを記述しますが、セキュリティの問題上、ストロングパラメーターという技術を用いてデータの保存を行います
#ストロングパラメーター
hoge.controller.rb
def create
Hoge.create(hoge_params) ←プライベートメソッドの呼び出し
end
private
def hoge_params
params.permit(:content) ←特定のキー(カラム)
end
ストロングパラメーターを記述したメソッドはプライベート以下に記載し、プライベートメソッドとして扱います。
またその中でpermitメソッド以下に受け取るキーを指定します今回の場合はcontentです
先ほどセキュリティの問題上、このような記述方法を行うと言いましたが、具体的には任意外のデータの登録・更新を防いでくれる働きがあります。
大型サービスなど不特定多数のユーザーが存在する場合以外では特に恩恵を感じることはないそうですが、Railsの慣例としてこのように記述します。