2012-09-05 2 views
0

similar question은 이미 답변되었지만 새로운 CanCan 2.0 버전을 다루지 않기 때문에 약간 오래된 것으로 보입니다. 특정 필드 (이 경우 :active:limited)가 사용자에 의해 업데이트되지 않고 관리자 만 편집 할 수 없도록해야합니다.Cancan 2.0, 사용자 모델의 특정 속성을 업데이트하도록 사용자를 제한하는 방법

# ability.rb 
if user.persisted? 
    cannot :update, :users, [:active, :limited] 

    elsif user.admin? 
    can :access, :all 
    end 

그러나이 코드는 사용자가 해당 필드를 편집하는 것을 방해하지 않습니다.

또한 enable_authorization을 새로운 class RegistrationsController < Devise::RegistrationsControllerdevise_for :users, path: 'users', controller: 'registrations' 경로에 추가했지만 그 중 하나가되지는 않습니다.

답변

-1

나는 사용자가 아니어야한다고 생각합니다. 사용자입니까?

# ability.rb ... cannot :update, User, [:active, :limited]

+0

작동하지 마십시오. – Martin

관련 문제