试图检查我的Hash中的内容,但得到 "undefined method `&' for Hash "错误信息。

我正在编写一个Ruby on rails (5)应用程序。 我试图简化这个块

if my_hash_data[:my_key_1]
  my_hash_data[:my_key_1][:my_key_2]
else
  ""
end

于是我写道

my_hash_data[:my_key_1]&[:my_key_2] || ""

然而,这导致了

undefined method `&' for {:my_key_2=>"Y"}:Hash

错误。 有没有其他方法可以让我写出这样的内容来减少我使用的行数?

解决方案:

是的,这就是你要做的事情。

my_hash_data[:my_key_1]&.[](:my_key_2) || ""

但我建议使用 挖掘 从Ruby 2.3开始

my_hash_data.dig(:my_key_1, :my_key_2) || ""

记住 h[:foo] 是句法糖的 h.[](:foo)

给TA打赏
共{{data.count}}人
人已打赏
未分类

简单的java。如何把这个数组中所有的5号都换成0号?[关闭]

2022-9-9 8:48:17

未分类

在symfony错误处理程序的prod env中缺少供应商资产。

2022-9-9 8:48:19

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索