Ruby on rails 升级到Rails 4.1.1后未定义的助手方法

Ruby on rails 升级到Rails 4.1.1后未定义的助手方法,ruby-on-rails,ruby-on-rails-4.1,Ruby On Rails,Ruby On Rails 4.1,升级到Rails 4.1.1后,我在访问助手方法时遇到问题。我的应用程序中有以下代码 module ApplicationHelper def last_page_url session[:last_page] end end class Admin::ArticlesController < ApplicationController def update #....more code here return re

升级到Rails 4.1.1后,我在访问助手方法时遇到问题。我的应用程序中有以下代码

module ApplicationHelper

    def last_page_url
       session[:last_page]
    end

end

class Admin::ArticlesController < ApplicationController

    def update
       #....more code here
       return redirect_to self.last_page_url
    end

end
模块应用程序助手
def last_page_url
会话[:最后一页]
结束
结束
类管理员::ArticlesController

在Rails 4.0.x中,该代码运行良好。升级到Rails 4.1.1后,我遇到了一个错误每当my
update
操作运行时,未定义的方法“last\u page\u url”。为什么现在会出现这种情况?

我不太清楚为什么升级到Rails 4.1.1后它会停止工作,但正如@steel所建议的,它与我的特定控制器中没有包含helper方法有关。将
include ApplicationHelper
添加到我的控制器顶部可能会起作用,我可能会进一步将其添加到ApplicationController类,因为我需要所有控制器都可以使用该方法。最后,我选择了不同的解决方案:

首先,我将
last\u page\u url
ApplicationHelper
移动到
ApplicationController
类,以便我的所有控制器都可以访问它。然后,我使用
helper\u方法
使此方法可用于我的所有视图。我的最终代码如下:

module ApplicationHelper

end

class ApplicationController < ActionController::Base
    # Prevent CSRF attacks by raising an exception.
    # For APIs, you may want to use :null_session instead.
    protect_from_forgery with: :exception

    def last_page_url
       session[:last_page]
    end
    helper_method :last_page_url
模块应用程序助手
结束
类ApplicationController
结束


如果有人知道从Rails 4.0到Rails 4.1发生了什么变化,我很想知道发生了什么。在这个特定的应用程序中,我只是在development.rb中使用默认的Rails 4.1设置。

我认为您不需要“self.last\u page\u url”的self。尝试“返回重定向到最后一页”url。如果这不起作用,您能否显示用于存储URL的代码,以及用于在控制器中包含帮助程序的代码?我尝试了上一页的URL,但得到了相同的错误。我没有做任何事情来在我的Admin:ArticlesController中包含applicationhelper类,所以这可能就是问题所在。我在我的文章控制器类中添加了
include ApplicationHelper
,效果很好。我想知道为什么在Rails 4.1之前就可以这样做。我从4.0.8升级到4.1.4,遇到了类似的问题。我想了解升级过程中发生了什么。