LoginSignup
0
0

More than 3 years have passed since last update.

[Rails] params, require, permit (ActiveModel::ForbiddenAttributesError の対処)

Last updated at Posted at 2020-04-22

params, require, permit

悪意のあるデータが送られてくる場合があるのでデータの検証を行うことができる

例: post(title, body)を受け取ると想定
require, permitを使わず下記のように書くとセキュリティ上好ましくない

def create
  @post = Post.new(params[:post])
end

そのためRailsから危ないと怒られる
(ActiveModel::ForbiddenAttributesError のエラーが表示される)
安全にするためにrequire, permitを使おう

Strong Parameterを使おう

送られてくるのはtitle, bodyと明示

def create
  @post = Post.new(params.require(:post).permit(:title, :body))
end

ただこの書き方はあまり推奨されていないので下記のように書きましょう

def create
  @post = Post.new(post_params)
end

private
  def post_params
    params.require(:post).permit(:title, :body)
  end
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