在单页应用程序(backbone.js)上检查能力的正确方法是什么?
E.g。如果它是非单页面应用程序,我可以在模板上写一下
<% if can :read? @resource %>
<%= link_to @resource %>
<% end %>
但我的问题是,当我渲染客户端模板时,我还没有加载@resource
。
答案 0 :(得分:3)
通常,将在客户端和服务器上执行访问控制。在服务器上,您可以按照正常情况在控制器中使用authorize!
。在客户端,cancan不可用。
可能的解决方案:
can?
可用的服务器上呈现视图片段。我不认为这种方法对骨干有很大意义。 我倾向于暴露API,但如果网络出现性能问题,我猜你必须在客户端复制你的能力对象。
这似乎是客户端应用程序如何工作的一个很好的例子!