2013-05-29 3 views
4

Каков надлежащий способ проверки способности приложения с одной страницей (backbone.js)?cancan на одностраничном приложении

E.g. если бы это было не-одно приложение страницу, я мог бы написать на шаблоне

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

Но моя проблема в том, что я не нагружал @resource еще, когда я сделать шаблон на стороне клиента.

+0

Хороший вопрос, но ИМО нужно сформулировать немного лучше. Возможно, сделать более общим о том, как разрешить авторизацию доступа в приложениях с одной страницей – jakee

ответ

3

Как правило, контроль доступа будет выполняться как на клиенте, так и на сервере. На сервере вы можете использовать authorize! в своих контроллерах в обычном режиме. На клиенте cancan недоступен.

Возможные решения:

  1. Рендер просматривать фрагменты на сервере, где can? доступен. Я не думаю, что этот подход имеет большое значение с позвоночником.
  2. Выставьте API для «Канкан запросов»
  3. Продублируйте объект способность на клиенте

Я склоняюсь twords подвергая API, но если сеть становится проблемой производительности, я думаю, вы будете иметь для дублирования вашего объекта объекта возможностей на стороне клиента.

Это похоже на хороший пример того, как приложения на стороне клиента работают больше!

Смежные вопросы