【问题标题】:if can? in Ruby on Rails如果能?在 Ruby on Rails 中
【发布时间】:2013-06-03 02:05:23
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

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

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

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

    【讨论】:

    • 这是一种结构方式
    • 是的,没错。我们也可以将授权码直接放在模型中。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-24
      • 1970-01-01
      • 1970-01-01
      • 2016-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多