为什么在创建自定义哈希类时会得到“未初始化的常量”?

时间:2017-09-25 23:14:54

标签: ruby-on-rails ruby ruby-on-rails-5

在Rails中,我正在尝试创建一个自定义哈希类,所以我使用此内容在lib / core_ext / hash_with_variants.rb中创建了一个文件

class VariantsHash < Hash
  def []=(string, value)
    all_variants(string).each do |variant|
      super(variant, value)
    end
  end

  def [](string)
    all_variants(string).detect do |variant|
      super(variant)
    end
  end

  private

  def all_variants(string)
    downcase_string = string.downcase
    string_length = string.length

    variants = [downcase_string]

    string_length.times do |i|
      variants << downcase_string[0, i] + downcase_string[i + 1 , string_length]
    end

    variants
  end
end

但是当我尝试使用

初始化一个新对象时
VariantsHash.new

我收到错误

NameError: uninitialized constant VariantsHash

我还需要做些什么才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您需要在/config/application.rb中要求该文件。