在我从某人继承的Ruby on Rails应用程序中,我的代码看起来像这样

<% if can? :create, :objects %>
<%= link_to 'Add New Object', new_object_path %>

此Web应用程序具有登录名,并且用户具有在称为groups_roles的表中定义的不同权限(哪些组(例如admin,user)具有哪些角色(例如添加新对象))

我想添加新的权限,那么该在哪里做呢?这些东西在哪里定义? Ruby如何知道从哪个表获得不同的权限,如何知道上面的代码中的:create:objects

最佳答案

该应用似乎正在使用ryan bates的cancan gem。您可以在app/models/ability.rb文件中指定权限。

它只是读取功能文件以确定用户是否可以执行某些操作。这些 Action 直接对应于您在 Controller 类中定义的 Action 。

Cancan的github存储库中有一个很棒的Wiki。此外,ryan的截屏视频也是一个很好的起点。

09-25 22:13