升级到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
在Rails 4.0.x中,这段代码运行良好。升级到Rails 4.1.1后,我收到错误&#34;未定义的方法&#39; last_page_url&#39;每当我的update
动作运行时。为什么现在这会破裂?
答案 0 :(得分:1)
我不确定为什么在升级到Rails 4.1.1后它停止工作,但正如@steel建议的那样,它与我的特定控制器中没有包含的辅助方法有关。将include ApplicationHelper
添加到我的控制器顶部会起作用,我可能已经将它添加到ApplicationController类中,因为我需要所有控制器都可用的方法。最后,我选择了另一种解决方案:
首先,我将last_page_url
从ApplicationHelper
移到ApplicationController
类,以便我的所有控制器都可以访问它。然后我使用helper_method
使这个方法适用于我的所有视图。我的最终代码如下:
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
端
如果有人想出从Rails 4.0改为Rails 4.1的东西,我会有兴趣了解发生的事情。在这个特定的应用程序中,我只使用了我的development.rb中的默认Rails 4.1设置。