设计before_action:身份验证异常

时间:2017-08-10 05:13:55

标签: ruby-on-rails devise

我正在设计。我希望一切都强制登录,除了特定的路线。在我的应用程序中,我正在保存一个长网址并使用一个简短的网址指向我的应用程序以获取重定向的长网址。未登录的外部用户需要能够关注该短网址并获取外部重定向的长URL。例如localhost.com/WdeFrs从数据库中提取长链接并重定向到网站.... google.com作为示例。一切正常,除非你按照链接回来强制登录。 无需登录即可正常工作有人可以帮助澄清修复方法。谢谢

application_controller.rb

  before_action :authenticate_user!, :except => [:urls]

的routes.rb

 resources :urls
  get "/:short_url", to: "urls#shortcustom"
  get "shortened/:short_url", to: "urls#shortened", as: :shortened

1 个答案:

答案 0 :(得分:1)

realloc选项before_action需要一个操作名称,而不是控制器名称。因此,您的代码正在为名为except的任何操作跳过身份验证。

要跳过urlsurls#shortcustom的身份验证,您需要包含

urls#shortened

skip_before_action :authenticate_user!, :only => [:shortcustom, :shortened]