Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.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 行动前设计:身份验证异常_Ruby On Rails_Devise - Fatal编程技术网

Ruby on rails 行动前设计:身份验证异常

Ruby on rails 行动前设计:身份验证异常,ruby-on-rails,devise,Ruby On Rails,Devise,我正在运行设计。我希望所有东西都能强制登录,除了特定的路线。在我的应用程序中,我保存了一个长url,并使用一个短url指向我的应用程序,以获取长url进行重定向。未登录的外部用户需要能够跟随该短url返回,并获取用于外部重定向的长url。例如localhost.com/WdeFrs从数据库中提取长链接并重定向到站点……例如google.com。一切正常,但当你跟随链接返回时,它会强制登录它需要在不登录的情况下工作是否有人可以帮助澄清修复。多谢各位 应用程序\u controller.rb rou

我正在运行设计。我希望所有东西都能强制登录,除了特定的路线。在我的应用程序中,我保存了一个长url,并使用一个短url指向我的应用程序,以获取长url进行重定向。未登录的外部用户需要能够跟随该短url返回,并获取用于外部重定向的长url。例如localhost.com/WdeFrs从数据库中提取长链接并重定向到站点……例如google.com。一切正常,但当你跟随链接返回时,它会强制登录它需要在不登录的情况下工作是否有人可以帮助澄清修复。多谢各位

应用程序\u controller.rb

routes.rb


操作之前的
选项
except
需要操作名称,而不是控制器名称。按原样,您的代码将跳过任何名为
URL
的操作的身份验证

要跳过
url#shortcustom
url#shorted
的身份验证,您需要包括

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

在您的
UrlsController

中,您不希望登录用户使用哪种方法?获取“/:short\u url”到:“url\35; shortcustom”我想这就是我试图破例的原因。尝试此“在筛选之前跳过”:验证用户!,:only=>:shortcustom`在您的URL控制器中。您尝试过我的解决方案吗?我尝试过了,我得到了错误:在跳过\u回调中:在处理之前\u操作回调:验证\u用户!尚未定义(ArgumentError)我正在寻找此错误的修复方法。:)@正如错误所说,没有
authenticate\u用户在控制器范围内定义。您确定它是在
ApplicationController
中定义的,并且
UrlsController
继承了它吗?是的,谢谢您,我没有在\u操作:验证\u用户之前使用过它!在我的应用程序中\u控制器!谢谢你的帮助!
 resources :urls
  get "/:short_url", to: "urls#shortcustom"
  get "shortened/:short_url", to: "urls#shortened", as: :shortened
skip_before_action :authenticate_user!, :only => [:shortcustom, :shortened]