gpt4 book ai didi

ruby-on-rails - 从 Rails 中的 Controller 调用辅助方法时出现 "undefined method"

转载 作者:行者123 更新时间:2023-12-03 07:06:14 25 4
gpt4 key购买 nike

有谁知道我为什么会这样

undefined method `my_method' for #<MyController:0x1043a7410>

当我从 ApplicationController 子类中调用 my_method("string") 时?我的 Controller 看起来像

class MyController < ApplicationController
def show
@value = my_method(params[:string])
end
end

还有我的 helper

module ApplicationHelper
def my_method(string)
return string
end
end

最后是应用程序 Controller

class ApplicationController < ActionController::Base
after_filter :set_content_type
helper :all
helper_method :current_user_session, :current_user
filter_parameter_logging :password
protect_from_forgery # See ActionController::RequestForgeryProtection for details

最佳答案

您无法从 Controller 调用助手。如果需要在多个 Controller 中使用该方法,最好的选择是在 ApplicationController 中创建该方法。

编辑:需要明确的是,我认为很多困惑(如果我错了,请纠正我)源于 helper :all 调用。 helper :all 实际上只包含在 View 端的任何 Controller 下使用的所有助手。在 Rails 的早期版本中,助手的命名空间决定了哪些 Controller 的 View 可以使用助手。

我希望这有帮助。

关于ruby-on-rails - 从 Rails 中的 Controller 调用辅助方法时出现 "undefined method",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2388932/

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