2012-09-11 2 views
1

권한이없는 사용자가 일부 속성을 편집하지 못하도록 current_user의 역할을 검사하는 도우미를 만들었습니다.레일 콘솔에서 Cancan 역할 검증을 우회

유효성 검사는 콘솔에있을 때와 별개로 유효합니다. 물론 한 사용자가 없습니다하지만 여전히 유효성을 확인하려고 내가 얻을 :

NoMethodError: undefined method `has_role?' for nil:NilClass 

어떻게이 검증을 우회하거나 내가 뭘하는지 달성하기 위해 더 나은 방법은 무엇입니까?

위치 모델 :

validate :check_archived_status, :on => :update 

    def check_archived_status 
    unless UserHelper.staff 
     if self.archived == false 
     if stuff == otherstuff 
      do some other stuff 
     end 
     end 
    end  
    end 

UserHelper : 콘솔에 어떤 임의의 사용자와의

def self.staff 
    staff = User.current_user.has_role?('Super', 'Admin', 'Tech') 
end 
+1

콘솔에 임의의 사용자로'current_user'를 채울 수 없습니까? 'current_user = User.last'이므로 유효성 검사로 인해 오류가 발생하지 않습니다. – MurifoX

+0

저는 며칠 동안 해결책을 찾지 못했으며, 이는 세계에서 가장 쉬운 해결책입니다! 당신은 그것을 받아 들일 수 있도록 대답으로 밀어 넣을 수 있습니까 ?? – simonmorley

+0

답변으로 추가되었습니다. =] – MurifoX

답변

0

당신이 채울 수 없습니다 current_user?
마찬가지로 : current_user = User.last, 유효성 검사가 오류를주지 않습니다.

+0

은 더 간단 할 수 없습니다! – simonmorley

관련 문제