Ruby on Rails中遇到Ruby NoMethodError,如何解决这个方法未定义的问题?

2026-04-11 18:452阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计453个文字,预计阅读时间需要2分钟。

Ruby on Rails中遇到Ruby NoMethodError,如何解决这个方法未定义的问题?

好的,我来帮您改写这段内容:

好的,我有点新想法。我知道这个错误是正确的,因为我不知道如何正确调用方法。所以,你能帮我理解这里出现了什么问题吗? ThingController

这段话已经相当简洁,字数也没有超过100个字。如果需要进一步精简,可以考虑以下方式:

新想法,错误在调用方法,求解析。 ThingController

好的,我有点新手.我知道这个错误正在发生,因为我没有正确理解如何调用方法.所以你能帮我理解这里出了什么问题吗?

Ruby on Rails中遇到Ruby NoMethodError,如何解决这个方法未定义的问题?

ThingController #index中的NoMethodError
未定义的方法`已初始化?’ for Thing :: Backend:Class

从ThingController.rb的错误部分:

class ThingController def init_things Backend.init_things unless Backend.initialized? end t = ThingController.new t.init_things end

在Backend.rb里面

class Backend # checks if the things hash is initialized def initialized? @initialized ||= false end # loads things def init_things puts "I've loaded a bunch of files into a hash" @initialized = true end end

我没有正确地调用该方法,我在互联网上找不到任何关于此错误的明确解释.请帮忙.

谢谢

看来问题是你在Backend中声明的初始化方法是一个实例方法.当你然后调用Backend.initialized?你正在调用初始化的类方法吗?对于后端类.此方法未定义,因此会引发NoMethodError.你可以通过使用def self.initialized?声明方法来解决这个问题.如果您真的希望这是一个类方法,您可能需要考虑如何组织其余代码.

您可以在railstips.org/blog/archives/2009/05/11/class-and-instance-methods-in-ruby/找到有关类与实例方法的更多信息

本文共计453个文字,预计阅读时间需要2分钟。

Ruby on Rails中遇到Ruby NoMethodError,如何解决这个方法未定义的问题?

好的,我来帮您改写这段内容:

好的,我有点新想法。我知道这个错误是正确的,因为我不知道如何正确调用方法。所以,你能帮我理解这里出现了什么问题吗? ThingController

这段话已经相当简洁,字数也没有超过100个字。如果需要进一步精简,可以考虑以下方式:

新想法,错误在调用方法,求解析。 ThingController

好的,我有点新手.我知道这个错误正在发生,因为我没有正确理解如何调用方法.所以你能帮我理解这里出了什么问题吗?

Ruby on Rails中遇到Ruby NoMethodError,如何解决这个方法未定义的问题?

ThingController #index中的NoMethodError
未定义的方法`已初始化?’ for Thing :: Backend:Class

从ThingController.rb的错误部分:

class ThingController def init_things Backend.init_things unless Backend.initialized? end t = ThingController.new t.init_things end

在Backend.rb里面

class Backend # checks if the things hash is initialized def initialized? @initialized ||= false end # loads things def init_things puts "I've loaded a bunch of files into a hash" @initialized = true end end

我没有正确地调用该方法,我在互联网上找不到任何关于此错误的明确解释.请帮忙.

谢谢

看来问题是你在Backend中声明的初始化方法是一个实例方法.当你然后调用Backend.initialized?你正在调用初始化的类方法吗?对于后端类.此方法未定义,因此会引发NoMethodError.你可以通过使用def self.initialized?声明方法来解决这个问题.如果您真的希望这是一个类方法,您可能需要考虑如何组织其余代码.

您可以在railstips.org/blog/archives/2009/05/11/class-and-instance-methods-in-ruby/找到有关类与实例方法的更多信息