0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

rails 他人のユーザー情報、投稿情報を変更できないようにする。

Posted at

初投稿です
railsで 他人のユーザー情報、投稿情報を変更できないようにする方法を記述していこうと思います
今回は、投稿情報のケースを紹介します(投稿に関するモデルはBookとし、Userモデルと関連づけているものとします。)
まず、以下のように記述します。
(こちらの記事は以下の記事を参照させていただいて作っております)
https://qiita.com/nao0725/items/47606b8975603a12fd5e

books_controller.rb
before_action :correct_user, only: [:edit, :update]
def edit
:
end

def update
:
end

private

def correct_user
@book=Book.find(params[:id])
redirect_to(books_path) unless @book.user_id ==current_user

①before_actionは各アクションが実行される前に呼びます。
詳細ページなどはどのユーザーからでも閲覧できるようにしたいので、今回はonlyを使って
before_actionの対象をedit,update飲みにしています。

@book=Book.find(params[:id])で編集しようとしていた投稿のIDを取得します

③redirect_to(books_path) unlessを使い@book.user_id==current_userが正しくなければ一覧ページに戻されます。

これで機能が完成しました。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?