0

선언적 승인 및 중첩 if_attributes에 대한 설명서를 이해하는 데 어려움이 있습니다.선언적 중첩 if_attribute

모델 :

class Company < ActiveRecord::Base 
    has_many :users, :through => :division 
end 

class Division < ActiveRecord::Base 
    belongs_to :company 
    has_many :users 
end 

class User < ActiveRecord::Base 
    belongs_to :post 
end 

내 규칙 : 내 계층 구조에서

role :company_admin do 
includes :company_admin 
    has_permission_on :companies, :to => [:index, :show, :edit, :update] do 
    if_attribute :id => is { user.division.company.id } # This is the problem.... 
end 

, 나는 자신의 회사의 모든 부서와 사용자를 편집 할 수 있도록 허용되어야합니다 정의 company_admin의 역할을한다. & 회사 및 아래의 모든 역할을 완전히 편집 할 수있는 회사 관리자 위에 또 다른 역할이 있습니다.

나는 끊어 버린 것 같은데, 위에 열거 된 규칙에있다. (나는 그것이 정확하지 않다는 것을 알고있다. 나는 현재 사용자가 자신의 회사 만 편집 할 수 있다는 것을 입증해야한다. 이 중첩 된 if_attribute 것으로 보이지만 설명서의 중첩 된 if_attributes 예제를 이해할 수없는 것 같습니다.

미리 도움을 청하십시오!

답변

0

해상도에 중첩 된 if_attribute가 필요하지 않았습니다. 실제로 사용 된 예가 실제로 올바르다면이 사용자가 상속 한 authorization_rules.rb 파일에 다른 사용 권한 오류가있어 혼동을 야기했습니다.

if_attribute :id => is { user.division.company.id } #This was the correct if_attribute