Ruby on rails 有点难看-不存在的哈希键的默认值?

Ruby on rails 有点难看-不存在的哈希键的默认值?,ruby-on-rails,hash,Ruby On Rails,Hash,我正在使用一个API,该API返回一个哈希值来表示产品: prod = API.getProduct(id) prod["name"] => "Widget" 这个问题之所以出现,是因为并非所有产品都包含相同的属性页,所以我发现自己做了很多一次性错误捕获-有些产品会有一个大小或颜色的键,有些则不会 获取prod[“不存在属性”]=>“NA”的最简单方法是什么?看看这个: 您可以使用prod.default=“NA”看看这个: 您可以使用prod.default=“NA”正如Dave Ne

我正在使用一个API,该API返回一个哈希值来表示产品:

prod = API.getProduct(id)
prod["name"] => "Widget"
这个问题之所以出现,是因为并非所有产品都包含相同的属性页,所以我发现自己做了很多一次性错误捕获-有些产品会有一个
大小
颜色
的键,有些则不会

获取prod[“不存在属性”]=>“NA”的最简单方法是什么?

看看这个:
您可以使用
prod.default=“NA”

看看这个:

您可以使用
prod.default=“NA”

正如Dave Newton所说,您可以将默认值添加到哈希构造函数中:

hash = Hash.new { |hash, key| hash[key] = "NA" }
hash[:anything] == "NA" # => true
或者使用
#default
方法:

hash = Hash.new
hash.default = "NA"
hash[:anything] == "NA" # => true
编辑初始化哈希时设置默认值的快捷语法为:

hash = Hash.new("NA")
hash[:anything] == "NA" # => true

正如Dave Newton所说,您可以向哈希构造函数添加默认值:

hash = Hash.new { |hash, key| hash[key] = "NA" }
hash[:anything] == "NA" # => true
或者使用
#default
方法:

hash = Hash.new
hash.default = "NA"
hash[:anything] == "NA" # => true
编辑初始化哈希时设置默认值的快捷语法为:

hash = Hash.new("NA")
hash[:anything] == "NA" # => true

是否向哈希构造函数提供默认值?将功能直接添加到哈希实例中?假设是普通哈希,请参阅@DaveNewton立即用谷歌搜索这些内容…:)谢谢不知道要搜索的正确语言。是否向哈希构造函数提供默认值?将功能直接添加到哈希实例中?假设是普通哈希,请参阅@DaveNewton立即用谷歌搜索这些内容…:)谢谢不知道要搜索的正确语言。我想您可以传入默认值;改变了吗?没有,你是对的。我通常使用上述语法主要是出于习惯。我会更新我的答案,以显示更快的语法。我想你可以传递默认值;改变了吗?没有,你是对的。我通常使用上述语法主要是出于习惯。我将更新我的答案以显示更快的语法。