좋아요, github에 대한 railsapps 템플릿 안내를 따라했습니다. CanCan의 ryanb 's railscast (내 이벤트 모델의 Comment 변수 교환). 저는 새로운 사용자를 구성하고 "스폰서"역할에 관리 역할에 주어진 기능의 하위 집합을 할당했습니다. Rails에서로드 할 때Devise> CanCan> 잘못 할당 된 역할 롤링
정의되지 않은 메소드`role? ' 사용자를위한 : 0x08 ...
좋아, 나는 "스폰서"역할에 새로운 사용자의 지정을 다시하고 무언가가 깨 졌는지보기 위해 콘솔 내에서 뒤로 가고있다. 끝 부분을 들여다 보면 깨져 보이지만 해결 방법을 모르는 것을 볼 수 있습니다.
resourcify
belongs_to :school
학교 has_many events
, has_and_belongs_to_many_users
및 belongs_to :event
: 여기 내 ability.rb
class Ability
include CanCan::Ability
def initialize(user)
user ||= Us # guest user (not logged in)
if user.has_role? :admin
can :manage, :all
else
can :read, :all
end
if user.role? :sponsor
can :create, Event
can :read, Event
can :update, Event do |event|
event.try(:user) == user
end
else
can :read, :all
end
end
end
내 event.rb입니다. 콘솔에서 나는 올바른 이름, school_id, 이메일 등으로 new_user를 만들었다. 예상대로 작동했다. 그 때 :
나는 사용자 ID가 스폰서 역할 ID와 함께 줄 지 알았다. 다음 단계는 내 문제가 시작되는 곳입니다. . 다음 수득
ability = Ability.new(new_user)
:. "롤"INNER은 "롤"ON "users_roles" "ID"= "users_roles를"가입 FROM
SELECT COUNT (*)는 "ROLE_ID"WHERE " users_roles "."USER_ID "= 5 AND (((이름 = '관리자')과은 (RESOURCE_TYPE이 NULL IS)
user_id를 잘하지만"이름이 " '관리자'이 아니다. 나는 그것이해야한다고 생각 것 '스폰서'이름을 찾으십시오.
이것은 간단한 질문 일지 모르지만이 잘못된 할당이 이벤트 # 인덱스 오류가 위에 표시된 이유에 대한 내 문제의 근원 일 수 있다고 생각합니다. Ability.new가 "admin"에 붙어 있다고 가정하는 것 같습니다. 무엇이 내려다보고 있습니까, 고맙습니다, 샘