在我从某人那里继承的Ruby on Rails应用程序中,我有类似的代码
<% if can? :create, :objects %>
<%= link_to 'Add New Object', new_object_path %>
此Web应用程序具有登录名,用户具有在名为groups_roles
的表中定义的不同权限(组(例如,admin,user)具有哪些角色(例如添加新对象))
我想添加新权限,那么我该怎么做?这些东西在哪里定义? Ruby如何知道从哪个表中获取不同的权限,以及它如何知道上面代码中的:create
和:objects
是什么?
答案 0 :(得分:5)
该应用程序似乎正在使用ryan bates的cancan gem。您可以在app/models/ability.rb
文件中指定权限。
它只是读取能力文件以确定用户是否可以执行某些操作。这些操作直接对应于您在控制器类中定义的操作。
Cancan在其github存储库中有一个很棒的维基。此外,ryan的截屏视频是一个很好的开始。
答案 1 :(得分:2)
我不知道应用程序是如何工作的,但can?
来自cancan gem。请参阅screencast。