NoMethodError - template.rb:38:在`<main>&#39 ;: undefined method` template&#39; for main:Object(NoMethodError)

时间:2016-03-17 15:47:00

标签: ruby

以下是我的代码我试图运行该方法,但它继续推出module Template attr_accessor :source_template, :req_id def initialize (source_template, req_id) @source_template = source_template @req_id = req_id end def self.template(source_template, req_id) template = String.new(@source_template) template_split_begin = template.index("e") template_split_end = template_split_begin + 6 template_part_one = String.new(self.template[0..(template_split_begin-1)]) template_part_two = String.new(self.template[template.length..template_split_end]) code = String.new(@req_id) final_template = String.new(template_part_one + code + template_part_two) template_split_begin_alt = template.index("a") template_split_end_alt = template_split_begin_alt + 9 template_alt = String.new(self.template[0..(template_split_begin_alt-1)]) template_part_two = String.new(self.template[template.length..template_split_begin_alt]) altcode = code[5..7] - code[0..4] final_alt_template = String.new(template_part_one_alt + altcode + template_part_two_alt) end end sample = "Green", 8 template("Blue", 6)

有人可以帮忙吗?

{{1}}

1 个答案:

答案 0 :(得分:0)

好的,我想我需要更深入的解释。

  1. 您无法获取模块实例,因此您的initialize方法毫无意义。你应该只在课堂上使用它。

  2. attr_accessor :source_template, :req_id在您的代码中毫无意义

  3. sample = "Green", 8是未使用的变量

  4. 您在某个对象上调用template("Blue", 6),而不是在module上定义的对象,这就是为什么我说您应该使用Template.template("Blue", 6)

  5. 如果您更改了它,则不会再出现此错误。但是从您的代码看起来您​​似乎缺少该语言的基本知识,所以我建议您在深入编写之前阅读一些关于Ruby的书。