2016-11-11 4 views
1

ActiveAdmin을 사용하여 CanCanCan을 구성하는 데 도움이 필요합니다. 나는 그 밖의 모든 것들을 고안해 내고 있습니다. 내가 devise를 사용하여 메뉴를 제한 할 수 있지만 URL이 편집을 위해 말할 수 있다는 것을 알고 있다면 여전히 해당 리소스를 편집 할 수 있습니다. 일반 사용자가 리소스를 편집/생성하는 것을 제한하고 싶지만 작동하지 않는 것 같습니다.activeadmin에 대해 CanCanCan을 구성하는 데 도움이 필요합니다.

Active_Admin.rb

config.cancan_ability_class = ActiveAdmin::CanCanAdapter 

Ability.rb을 (상자 밖으로 간단한)

class Ability 
    include CanCan::Ability 

    def initialize(user) 
    # Define abilities for the passed in user here. For example: 
    # 
     # user ||= User.new # guest user (not logged in) 
     if user.admin? 
     can :manage, Student 
     else 
     can :read, Student 
     end 
end 
end 

사용자 모델. 나는 아직도/편집/생성, 삭제 할 수있는 관리자가 아닌 사용자로 로그인하면

admin:boolean 

가와, 난 그냥 읽기 전용을 제한 할.

내가 완료해야하는이 기능으로 어려움을 겪고 있습니다. 이 생각

답변

3

변경 사전에

감사 :

config.authorization_adapter = ActiveAdmin::CanCanAdapter 
config.cancan_ability_class = Ability 

authorization_adapter은 사용해야 어댑터 활성 관리자에게 알려줍니다. cancan_ability_class은 사용할 클래스를 어댑터에 알려줍니다.

그래도 작동하지 않으면 Ability의 이름을 AdminAbility으로 변경하십시오.

+1

돌아와 줘서 고마워. 나는 능력 클래스를 추가했지만, 이제는 영원히 반복되어 localhost가 시작되지 않는다고 말합니다. 또한 클래스를 AdminAbility로 이름을 바꾸었지만 서버 시작시 초기화되지 않은 상수 AdminAbility (NameError)를 제공합니다. – Waqas

+0

안녕하세요. 더 많이 놀고 나면 알려 드리겠습니다. 제대로 작동하고 있습니다. 그냥 화이트 페이지를 받고 내가 로그를 체크했을 때이 페이지에 대한 허가가 없다고 말했을 때, 나는 그것이 루프라고 생각했지만 그렇지 않았다. 감사 – Waqas