で全体ではなく、コントローラのアクションの個々のレコードへの権限を制限する私は、カテゴリRailsの
class Article < ApplicationRecord
belongs_to :category
class Category < ApplicationRecord
has_many :articles, dependent: :destroy
それは、私はいくつかのロール独自の認証と承認の基本的なUserモデルをただしているに属している記事でRailsのアプリを持っています特定のユーザーを特定のカテゴリの記事に限定しようとする道路ブロックに入る
"admin"ユーザーと "internal"ユーザーがいます。
私はカテゴリが唯一の管理と内部ユーザーに内部に設定されている任意の物品へのアクセスを制限したい
だけでなく内部というカテゴリがあります。
一般ユーザーまたはログインしていないユーザーが内部カテゴリの記事にアクセスしようとすると、ホームページにリダイレクトされ、アクセスが拒否されたことを知らせるフラッシュメッセージが表示されます。
私が見たくない特定のページは、そのカテゴリが内部に設定されている記事と内部カテゴリの表示ページであるすべての記事の表示ページです。
内部カテゴリの表示ページは、カテゴリが内部に設定されているすべての記事を繰り返します。
before_actionを使用して、新しいページ、編集ページ、破棄ページへの不正アクセスを制限するように設定しました。私の主な質問は以下のようになり
before_action :admin_user, only: [:new, :edit, :destroy]
def admin_user
redirect_to(root_url) && flash[:danger] = "You are not authorized!" unless current_user.admin?
end
モデルだけではなく全体のコントローラのアクションから個々のレコードへのアクセスを制限するために、よりきめの細かい方法は何ですか?
私はcancancanのようないくつかの宝石を掘り起こしましたが、それらはすべてコントローラの操作全体へのアクセスを制限し、個々のレコードに制限することに焦点を当てていないようです。
ご意見をいただければ幸いです。