Ruby:未初始化的常量

时间:2019-03-07 16:52:02

标签: ruby-on-rails ruby

我不知道我在这里缺少什么,无法在ruby中的另一个函数中调用一个函数

示例:

def test()
  puts WB_A
end

# Top level components
def WB_A
  {
    'A'            => 'Apple',
  }
end

test()

结果:

  

main.rb:2:在test': uninitialized constant WB_A (NameError) from main.rb:12:in'

请让我知道怎么了

1 个答案:

答案 0 :(得分:2)

来自Ruby user's guide

  

常量的名称以大写字母开头。
  最多应为其分配一个值。

只需将其更改为小写即可:

def test()
  puts wb_a
end

# Top level components
def wb_a
  {
    'A'            => 'Apple',
  }
end

test()
#=> {"A"=>"Apple"}

或者,如果可以的话,wB_A也可以使用,但不建议这样做,请查看下面的tadman评论。