6

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

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

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

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

4

2 回答 2

6

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

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

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

于 2013-06-02T18:05:23.817 回答
3

我不知道应用程序是如何工作的,但can?来自cancan gem。请参阅截屏视频

于 2013-06-02T17:57:28.067 回答