progate 9回 ラスト
URLの指定で、他人の投稿にアクセスできてしまいのを防ぐ回
def ensure_correct_user
@post = Post.find_by(id: params[:id])
if @post.user_id != @current_user.id
flash[:notice] = "権限がありません"
redirect_to("/posts/index")
end
find_byメソッドの意味がスッキリした
SQLの id というカラムから、params[:id]に合致するものを探し、
それをインスタンス変数として@post に渡している。
これは投稿そのもの、一列丸ごと
ここでparams[:id]にする意味がわからなかったが
params[:id]はルートの指定を格納している
posts/1
みたいな
ユーザー各ページのURLを入れ込むことによって、ここにアクセスすることを防いでいる
と判明!!