params[:id]とfind_byメソッドの意味~ヘルスケアwebサービスを自分で作る医者の日記~
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を入れ込むことによって、ここにアクセスすることを防いでいる
と判明!!
Author And Source
この問題について(params[:id]とfind_byメソッドの意味~ヘルスケアwebサービスを自分で作る医者の日記~), 我々は、より多くの情報をここで見つけました https://qiita.com/shutainer/items/4aa74e8192c28d00cae9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .