저는 CanCan의 힘으로 나 자신을 혼란스럽게 생각합니다.CanCan vs. Rails Association
나는 더 긴 질문을 여기에서 물었습니다 - Rails has_many :through, null belongs_to, multiple belongs_to and deletion of belongs_to?. 그러나 회원 중 한 사람의 조언에 따라 궁극적으로 궁금한 점을 제 질문으로 단순화했습니다. 간단히 말해, User
은 에 Role
을 갖는다. User
도 Events
을 만들 수 있지만, 볼 수/편집 할 수있는 것은 Role
입니다. User
이 (가) Role
을 잃으면 더 이상 Event
에 액세스 할 수 없습니다.
또한, Event
제거 만든 User
및/또는 Role
경우 Event
는 것이다 여전히 Network
에 존재하고 그들의 Role
에서 충분히 높은 기관 (등 관리, 관리자,) 모든 Users
볼 수 .
CanCan을 사용하여 User
에 Event
에 대한 액세스 권한이 있는지 확인하려면 Role
을 테스트 할 수 있습니다. 그 부분은 잘 작동합니다.
하지만이 Events
에 대한 컨트롤러 액션에 대한 접근뿐만 아니라 Event
도 can :read
에 따라보기에 표시됩니다 여부 등을 모두 제어 할 수 캉캉를 사용하고있는 경우 더 개념적, 레일 has_many :through
이 필요하다 Users
과 Events
사이의 연관? 기술적으로 User
은 Event
에 Network
의 Role
으로 연결되어 있기 때문에 액세스를 제어하기 위해 CanCan에 남겨 둘 수 있습니까, 아니면 연관이 필요합니까? 다음과 같은 방법을 사용하는 것이 좋습니다 :
def events
... # info for grabbing all events user has access to?
end
또는 이것도 필요하지 않습니까? 한 번 봐 가지고
을 통해 : 당신은 has_many을 사용할 필요가없는
그러면 사용자와 이벤트간에 공식적인 연관성이 없습니까? 그리고 그건 받아 들일 수있는/훌륭한 레일 연습입니까? – dewyze
사용자 has_many : events와 같은 일반적인 연결을 수행하면 어떨까요? CanCan에서 그 관계를 제한합니까? 그게 당신을 위해 일하거나 더 구체적인 것을 필요로합니까? –