저는 승인 엔진으로 cancan을 사용하고 있습니다.레일 3 : 사용자에게 역할 추가
이미 사용자의 역할을 :
ROLES = %w[admin normal author corp]
또한 역할을 추가하고 확인하는 방법이 있습니다
#cancan
def roles=(roles)
self.roles_mask = (roles & ROLES).map { |r| 2**ROLES.index(r) }.sum
end
def roles
ROLES.reject do |r|
((roles_mask || 0) & 2**ROLES.index(r)).zero?
end
end
def is?(role)
roles.include?(role.to_s)
end
을 그리고 사용자 모델에서 # roles_mask :integer
있습니다.
그러나 정상적인 역할을 사용자에게 할당하는 after_save :add_normal_role
을 갖고 싶습니다.
기본적으로 저는 각 사용자에게 역할을 할당하는 방법을 알지 못합니다.
이 작동하지 않는, 내가 무엇을 가지고 :
private
def add_normal_role
self.roles=(ROLES[1])
end
감사
이 코드에서는 다음과 같은 오류가 있습니다 : 정의되지 않은 메서드 "&" "normal": 문자열 – donald
네, 코드에'self.roles = ([ROLES [1]])'이 있어야한다고 생각합니다. 당신은 배열을 전달하고있다). –
그래, 그게 다야! 감사. – donald