0
0

More than 1 year has passed since last update.

ストロングパラメータ

Posted at

1.ストロングパラメーターとは

  • パラメーターを受け取る際に指定したキーをもつパラメータを受けとるように制限をかけるものです
  • 制限がないと登録されるべきではない、カラムのデータが送られてきた場合に、そのデータが保存されてしまいます

2.基本の記述

○○○_controller.rb
private
  def message_params
    params.require(:モデル名).permit(:保存させたいカラム名).merge(カラム名: 追加したいデータ値)
  end

2−1.require(:モデル名) メソッド

  • モデル名の部分には、今回送られてきたデータはどこのテーブルに保存したいのかを記載します。

2−2.permit(:カラム名) メソッド

  • カラム名の部分には、今回送られてきたデータはどのカラムに保存したいのかを記載します。
  • permit(:カラム名1, :カラム名2)のように複数カラムを指定することも可能です。

2−3..merge(カラム名: 追加したいデータ値) メソッド

  • ユーザーから受け取ったデータにはないけれど、追加したい値はmergeメソッドで追加できます。
  • 例えば旅行先を投稿する機能があったとして、新規投稿する際に、ユーザーから送られる情報は、locationとtitleのみだったとします。
    この場合、どのユーザーが投稿するかの情報は送られてきていません。
    そこで、こちら側でログイン情報からuser_idをとってきて登録しておきます。

最後に

かなり簡潔にまとめると
require(テーブルを指定)
どのテーブルの値をうけとりたいのか
permit(カラムの指定)
受け取りたい値の指定をしておく
merge(指定したテーブルにはないカラムを指定)
requireで指定したテーブルにはない値を指定したい
となります。

0
0
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
0