gpt4 book ai didi

ruby-on-rails - 升级到 Rails 4.1.1 后未定义的辅助方法

转载 作者:行者123 更新时间:2023-12-04 06:15:51 26 4
gpt4 key购买 nike

升级到 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 后,每当我的 update 操作运行时,我都会收到错误“undefined method 'last_page_url'。为什么现在会中断?

最佳答案

我不太确定为什么在升级到 Rails 4.1.1 后它停止工作,但正如@steel 所建议的,它与我的特定 Controller 中未包含的辅助方法有关。将 include ApplicationHelper 添加到我的 Controller 顶部是可行的,我可能可以通过将它添加到 ApplicationController 类来更进一步,因为我需要该方法可用于所有 Controller 。最后我选择了不同的解决方案:

首先,我将 last_page_urlApplicationHelper 移到了 ApplicationController 类中,这样我的所有 Controller 都可以访问它。然后我使用 helper_method 使我的所有 View 都可以使用此方法。我的最终代码如下:

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 设置。

关于ruby-on-rails - 升级到 Rails 4.1.1 后未定义的辅助方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23876645/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com