ruby - 为哈希键创建对象

标签 ruby

我正在尝试为散列键创建一个对象。这是我的对象。

def CompositeKey
  def initialize(name, id)
      @id=id
      @name=name
   end
end

然后在同一个文件中尝试使用它。

def add_to_list(list, obj)
  # Find or create the payer
  key = CompositeKey.new(obj["PAYER NAME"], obj['PAYER ID'])
  payer = list[key]
  if payer.nil?
    payer = {}
    list[key] = payer
  end

  # Copy the values into the payer
  copy_to_payer(obj, payer)
end

但我一直收到错误。 rb:57:in 'add_to_list':未初始化的常量 CompositeKey (NameError)。 我错过了什么?我该如何进行这项工作?

最佳答案

将'def'更改为'class'

class CompositeKey
...
end

关于ruby - 为哈希键创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20644252/

相关文章:

ruby - 了解 Ruby 中初始化时分配的变量的访问

ruby-on-rails - rails迁移中的唯一外键

RubyGems 忽略 `.gemrc` ?

ruby-on-rails - Rails 应用程序之间的通信

ruby-on-rails - 为什么 Active Record 在内部使用 module_eval 来实现某些功能?

ruby - 为什么哈希中的这个字符串键转换为符号?

ruby-on-rails - 未建立连接 - Ruby on Rails

ruby - DelegateClass 和类似方法存在于哪个对象/类上?

ruby - 方法和变量名相同

ruby-on-rails - 使用 pg_restore 数据转储创建新的 Rails 应用程序