我对ruby很新,我试图找出在ruby中做同样事情的方法。
在yml语法中,我们使用类似于这种方式的语法来获得默认blob,然后使用特定值覆盖它们:
default:
default:
A: {read: 20, write: 10}
B: {read: 30, write: 30}
C: {read: 130, write: 10}
override1:
placeholderA:
A: {read: 10, write: 10}
override2:
placeHolderB:
A: {read: 10, write: 10}
B: {read: 5, write: 5}
C: {read: 5, write: 5}
D: {read: 5, write: 5}
我想知道我们是否可以在ruby中创建一个哈希值,如果它们存在,它将选择覆盖的值,否则它将只选择默认值。
我不确定ruby merge map是否解决了这个问题(因为我还是ruby的新手,我正在探索选项)。
这可能吗?
答案 0 :(得分:0)
合并:
options = {a:22}
my_defaults = {a:1, b:123}
my_defaults.merge(options)
> {a:22, b:123}
如果你使用rails也提供了reverse_merge,反过来也可以在某些用例中更清楚地读取意图
options = { a:2, b:321 }
my_defaults = {a:1, c:3}
options.reverse_merge(my_defaults)
> {a:2, b:321, c:3}