Rails.application.routes.recognize_path错误,未定义方法进行身份验证

时间:2013-09-02 18:29:06

标签: ruby-on-rails authentication devise nomethoderror

在我的application_controller.rb中,我有一行

# Get the previous url string nicely.
previousPath = Rails.application.routes.recognize_path(request.referrer)

但是我在那一行得到了这个错误

NoMethodError (undefined method `authenticate?' for nil:NilClass)

这似乎与设计有关。 但是当我确实包含Devise :: TestHelpers时,我得到的env没有定义或者什么东西,这似乎不是一个好的解决方案。

有关如何解决这个问题的任何想法,而不需要我捕获错误或regexp来分割路径?

1 个答案:

答案 0 :(得分:0)

此问题可能是由于默认情况下在应用程序首次加载时在路径中写入的路径路径,因此请将字符串连接到从request.referrer获取的URL。

即,url = request.referrer +“controller_name”

 previousPath = Rails.application.routes.recognize_path(url)