Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在Rails下的自定义ruby脚本中扩展自定义模块_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 如何在Rails下的自定义ruby脚本中扩展自定义模块

Ruby on rails 如何在Rails下的自定义ruby脚本中扩展自定义模块,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我有一个ruby脚本lib/tasks/material\u parser\u helper.rb 以及一个模块lib/common\u parser\u methods.rb 如何将所有模块方法扩展到“material\u parser\u helper.rb”中 因此,我可以用MaterialParserHelper 如果我在课后尝试扩展CommonParserMethods 我将得到错误NameError:uninitialized constant SummaryProjection::

我有一个ruby脚本
lib/tasks/material\u parser\u helper.rb

以及一个模块
lib/common\u parser\u methods.rb

如何将所有模块方法扩展到“material\u parser\u helper.rb”中

因此,我可以用MaterialParserHelper

如果我在课后尝试扩展CommonParserMethods

我将得到错误
NameError:uninitialized constant SummaryProjection::CommonMethods

class MaterialParserHelper
  extend CommonParserMethods

  def   test
      clean_key("jckdj")
  end

end
通用语法分析器\u方法.rb Application.rb
看起来你想包括通用语法分析方法,而不是用它扩展你的类。这将根据CommonParserMethods中定义的方法提供MaterialParserHelp的实例

有关包含与扩展的更多信息,请参见此处:


也就是说,您的错误消息引用了一些未显示的代码;一个名为
SummaryProjection
的类。你确定MaterialParserMethods类导致了这个问题吗?

首先,你的application.rb是错误的,括号是不完整的。@Almaron Hi我没有找到CinoComplete发生在哪里,我认为语法是正确的,否则Rails会给我错误。结束括号已注释掉。它应该是
config.autoload\u路径+=%W(#{config.root}/lib/)#comment
module CommonParserMethods
  def clean_key(key)
    return key.strip.squish.gsub(/\s/, '_').gsub('-', '_').downcase
  end
end
config.autoload_paths += %W(#{config.root}/lib/ #{config.root}/lib/common_parser_methods.rb #{config.root}/lib/tasks)