대신 전체 컨트롤러 액션의 개별 레코드에 대한 권한을 제한 I 카테고리레일
class Article < ApplicationRecord
belongs_to :category
class Category < ApplicationRecord
has_many :articles, dependent: :destroy
그것은 내가 어떤 롤 자신의 인증 및 권한 부여와 기본 사용자 모델을하지만이에 속하는 기사와 레일 응용 프로그램이 특정 사용자를 특정 카테고리의 기사로 제한하려는로드 블록으로 실행
"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과 같은 몇 가지 보석을 파 냈다. 그러나 모든 것들은 개인적인 기록이 아닌 전체 컨트롤러 행동에 대한 접근을 제한하는 것에 초점을 맞추는 것처럼 보인다.
모든 의견을 크게 기뻐할 것입니다.