在设计认证中保留一个动作

时间:2015-02-17 12:52:15

标签: ruby-on-rails ruby devise

我已经安装了devise gem进行身份验证。我创建了一个名为Members的脚手架。我已经把

before_filter :authenticate_user!

位于Members控制器的顶部。但我想做

Member.Show

要退出身份验证的操作。我的意思是,在任何人都可以看到会员资料。

由于

3 个答案:

答案 0 :(得分:1)

您可以在控制器中添加此行(通常在开头):

class MembersController < YourBaseController
  # ...

  skip_before_filter :authenticate_user!, only: [:show]

  # ...
end

答案 1 :(得分:0)

最优雅的方法是使用except过滤器:

class MembersController
  ...
  before_filter :authenticate_user!, except: :show
  ..
end

这样,过滤器周围的所有逻辑都包含在一个地方。您还可以传递一系列操作以排除:

class MembersController
  ...
  before_filter :authenticate_user!, except: [:show, :another_action]
  ..
end

有关详情,请参阅:http://apidock.com/rails/ActionController/Filters/ClassMethods/before_filter

答案 2 :(得分:0)

你可以简单地做

class MembersController < ApplicationController
   skip_before_filter :authenticate_user!, only: [:show]

   #rest of the codes
   def show
     #show codes
   end
end