승인을 받아야합니다. 확장 성있는 솔루션을 보려면 Pundit을 찾으십시오. https://github.com/elabs/pundit
제한된 2 개의 컨트롤러에만 몇 가지 방법 만 있었기 때문에 약간의 컨트롤이 필요했습니다. 그 사람들을 위해 난 그냥 before_filter 및 인증을 제어하는 메서드를 만들었습니다.
아래의 코드는 모든 사람이 색인을 수행하고 "admin"값을 가진 역할 속성이있는 사용자 만 컨트롤러에서 다른 작업을 수행 할 수 있도록 허용합니다. 또한 권한이 부여되지 않은 오류를 발생 시키거나 리디렉션하지 않고 오류 메시지를 표시하도록 선택할 수 있습니다. 집의 보안 측면에 기사 (아마도 책)가 있습니다. 사용자가 무언가를 할 권한이 없다는 사실을 사용자에게 알려 주어야하는지 (즉, 누군가가 URI에서 할 수있는 것이 있다는 것을 의미 할 수 있음)
관리자
class User < ActiveRecord::Base
def admin?
if self.role == "admin"
true
else
false
end
end
end
을 확인 당신이 고안해야합니다 과정 또는 CURRENT_USER 방법 및 사용자에 대한 방법의
SomeController < ApplicationController
before_filter check_authorized, except [:index]
def index
....stuff that everyone can do
end
def delete
....stuff only admin can do
end
private
def check_authorized
redirect_to root_path unless current_user.admin?
end
end