我有一个宝石,其中一个类似于......:
class Test
TESTING = {
:sth1 => 'foo',
:sth2 => 'bar'
}
# p Test.new.show
# should print 'cat'
def show
p TESTING[:sth3]
end
end
我在其他文件中扩展
# in other file
class Test
TESTING = {
:sth3 => 'cat'
}
end
但我需要在第一个文件中使用:sth3,因为代码的第一部分代表。 Thx提前。
答案 0 :(得分:2)
你没有扩展它,你用新的哈希替换了哈希。以下是修复方法:
# in the other file
Test::TESTING[:sth3] = 'cat'
我建议使用延迟初始化的方法,以便您可以按任何顺序排列分配:
class Test
def self.testing
@testing ||= {}
end
testing[:sth1] = 'foo'
testing[:sth2] = 'bar'
end
# in the other file
Test.testing[:sth3] = 'cat'