Ruby on rails 设计+;坎坎:定义了图坦卡蒙的积垢,现在如何限制控制器的使用

Ruby on rails 设计+;坎坎:定义了图坦卡蒙的积垢,现在如何限制控制器的使用,ruby-on-rails,Ruby On Rails,我创建了一个与CanCan集成的设计,如《告诉我》: 现在我有两个资源用于我的用户类。设计并创建一个RESTful资源:用户。 正如在教程中提到的,我在restfuledit_user_路径中包含了一个表单,用于编辑用户的权限。 现在我不明白如何限制普通用户访问该编辑功能并为此使用Desive编辑功能 是否可以将用户限制为 can :manage, User 但他还能设计控制器吗 已解决 只需在ability.rb中添加一个 can :assign_roles, User 然后以_形式进

我创建了一个与CanCan集成的设计,如《告诉我》:

现在我有两个资源用于我的用户类。设计并创建一个RESTful资源:用户。
正如在教程中提到的,我在restfuledit_user_路径中包含了一个表单,用于编辑用户的权限。 现在我不明白如何限制普通用户访问该编辑功能并为此使用Desive编辑功能

是否可以将用户限制为

can :manage, User
但他还能设计控制器吗

已解决

只需在ability.rb中添加一个

can :assign_roles, User
然后以_形式进行RESTful编辑

<% if can? :assign_roles, current_user %>

然后让用户在RESTful表单或Desive表单上进行编辑,这无关紧要

编辑

_form.html.erb(或haml)



也许也行。取决于你的控制器。如果你想确保你的能力也在控制器级别得到检查,你应该向它添加
load\u和

class ProductsController < ActionController::Base
  load_and_authorize_resource
end
class ProductsController

如果您只是根据
方法在视图中显示/隐藏链接,用户仍可能在地址栏中键入直接链接,例如编辑操作

class ProductsController < ActionController::Base
  load_and_authorize_resource
end