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