0
2

More than 3 years have passed since last update.

params・ストロングパラメータ

Last updated at Posted at 2020-05-11

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の慣例としてこのように記述します。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2