Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何允许用户使用CanCan查看资源的单个实例而不是索引?_Ruby On Rails_Devise_Ruby On Rails 3.2_Ruby On Rails 4_Cancan - Fatal编程技术网

Ruby on rails 如何允许用户使用CanCan查看资源的单个实例而不是索引?

Ruby on rails 如何允许用户使用CanCan查看资源的单个实例而不是索引?,ruby-on-rails,devise,ruby-on-rails-3.2,ruby-on-rails-4,cancan,Ruby On Rails,Devise,Ruby On Rails 3.2,Ruby On Rails 4,Cancan,我会尽量说得比标题更清楚。我希望用户能够查看可能位于以下URL的所有单个小部件: /widgets/2 /widgets/3 /widgets/45 但我不希望用户查看整个索引: /widgets 我知道我可以在控制器中甚至在视图中检查索引和显示,但我正在寻找一种更简单的方法,我可以将此添加到能力.rb文件中: can :read, Widget 当然,这也将允许用户查看索引…是否必须使用cancan?原因如果不是,您可以对控制器上的索引操作执行以下操作: controller befo

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

/widgets/2
/widgets/3
/widgets/45
但我不希望用户查看整个索引:

/widgets
我知道我可以在控制器中甚至在视图中检查
索引
显示
,但我正在寻找一种更简单的方法,我可以将此添加到
能力.rb
文件中:

can :read, Widget

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

是否必须使用cancan?原因如果不是,您可以对控制器上的索引操作执行以下操作:

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

一定要和坎坎在一起吗?原因如果不是,您可以对控制器上的索引操作执行以下操作:

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
我希望用户能够查看所有单独的小部件。。 但我不希望用户查看整个索引

使用
:显示
,而不是
:读取

can :show, Widget
:read
是一个for
[:show,:index]
的函数

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

使用
:显示
,而不是
:读取

can :show, Widget

:read
是一个for
[:show,:index]

我基本上做了一些类似于你建议的事情,但我在寻找如何处理cancanI基本上做了一些类似于你建议的事情,但我在寻找如何处理Cancancane,这正是我所期待的,正是我所期待的