2013-05-29 6 views
4

단일 페이지 응용 프로그램 (backbone.js)에서 능력을 검사하는 적절한 방법은 무엇입니까?단일 페이지 응용 프로그램에서 캔 캔

예. 가 아닌 단일 페이지 응용 프로그램 인 경우, 나는 템플릿

<% if can :read? @resource %> 
    <%= link_to @resource %> 
<% end %> 

에 쓸 수하지만 내 문제는 내가 클라이언트 측 템플릿을 렌더링 할 때 내가 아직 @resource를로드하지 않는다는 것입니다.

+0

좋은 질문이지만 IMO는 좀 더 자세하게 표현해야합니다. 단일 페이지 응용 프로그램에서 액세스 권한을 수행하는 방법에 대해 더 일반적인 내용을 작성하십시오. – jakee

답변

3

일반적으로 액세스 제어는 클라이언트와 서버 모두에서 수행됩니다. 서버에서는 정상적으로 컨트롤러에 authorize!을 사용할 수 있습니다. 클라이언트에서 Cancan을 사용할 수 없습니다.

가능한 해결책 :

  1. can?를 사용할 수있는 서버에보기 조각을 렌더링합니다. 나는이 접근법이 백본에 많은 의미가 있다고 생각하지 않는다.
  2. 내가 API를 노출 twords을 기울고 있어요

클라이언트에서 능력 개체를 복제 "캉캉 질의"에 대한 API를 노출하지만, 네트워크가 성능 문제가되면 당신이해야합니다 생각 능력 객체 클라이언트 측 복제.

이것은 클라이언트 측 응용 프로그램이 어떻게 작동하는지 보여주는 좋은 예입니다.

관련 문제