在我从某人继承的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的截屏视频也是一个很好的起点。