You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JRuby9+Rails5.2环境下account["details"]["name"]的Ruby安全导航写法

正确的安全导航实现方式

你之前写的account&["details"]&["name"]不符合Ruby语法规则,安全导航操作符&.必须后接方法名,而[]是Hash的内置实例方法,不能直接和&拼接使用,因此会抛出未知方法错误。

以下是两种适配你环境的合法写法:

方案1:纯Ruby语法兼容写法

将[]作为方法通过安全导航符显式调用:

account&.[]("details")&.[]("name")

该写法不依赖任何框架扩展,符合Ruby原生语法规范。

方案2:更简洁的推荐写法(适配Rails 5.2/JRuby9环境)

你所用的环境已经支持Hash#dig方法,该方法本身就具备安全遍历嵌套Hash的能力,遇到空值会直接返回nil不会抛出异常,可读性更高:

  • 如果能确认account本身不会为nil,直接写:
account.dig("details", "name")
  • 如果account也可能为nil,结合安全导航符使用:
account&.dig("details", "name")

内容的提问来源于stack exchange,提问作者Pawan Patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 19:36:04