1

我会尽量比标题更清楚。我希望用户能够查看可能位于以下 URL 的所有单个小部件:

/widgets/2
/widgets/3
/widgets/45

但我不希望用户查看整个索引:

/widgets

我知道我可以在控制器中甚至在视图中检查indexand show,但我正在寻找一种更简单的方法可以将其添加到Ability.rb文件中:

can :read, Widget

当然,这也将允许用户查看索引...

4

2 回答 2

1

我希望用户能够查看所有单独的小部件..但我不希望用户查看整个索引

使用:show,不使用:read

can :show, Widget

:read是的别名[:show, :index]

于 2013-08-14T05:53:11.743 回答
0

一定要和康康一起吗?因为如果不是,您可以像这样对控制器上的索引操作进行前置过滤:

controller

before_filter :check_user,  :only => [:index]  

def index
  // code
end

def check_user
 if current_user.type==1
  redirect to root_url
 end
end

好的,这个和康康怎么样

能力.rb

cannot :manage, Widget

控制器

skip_authorize_resource :only => :show
于 2013-08-14T04:10:10.677 回答