dev/mom0tomo

技術メモ

ストロングパラメータの簡単なサンプル

読んだもの

qiita.com

学んだこと

  • Railsではストロングパラメータを必ず使う
  • フォームの受け渡しなどで使わないとエラーになる(警告)

ストロングパラメータの基本的な書き方

params.require(:user).permit(:name, :email, :password)

やっていること

以下の二つ。 1. requireでPOSTで受け取る値のキーを設定している 2. permitで許可するカラムを設定している


上の例ではname, email, password属性の値だけDBに入れるのを許可している。

サンプルコード

実際に書くときはこんな感じ。

task_controller.rb

class TasksController < ApplicationController
  def index
    @tasks = Task.all
  end

  def show
    @task = Task.find(params[:id])
  end

  def update
    @task = Task.find(params[:id])
    if @task.update(task_params)
      redirect_to @task
    else
      flash.now[:danger] = 'Message は更新されませんでした'
      render :edit
    end
  end

  private

    # ストロングパラメータ
    def task_params
      params.require(:task).permit(:content)
    end
end