小编典典

等效于 .try() 的哈希以避免 nil 上的“未定义方法”错误?

all

在 Rails 中,如果值不存在,我们可以执行以下操作以避免错误:

@myvar = @comment.try(:body)

当我深入挖掘哈希并且不想出错时,什么是等效的?

@myvar = session[:comments][@comment.id]["temp_value"] 
# [:comments] may or may not exist here

在上述情况下,session[:comments]try[@comment.id]不起作用。什么会?


阅读 77

收藏
2022-08-08

共1个答案

小编典典

你忘了.try:

@myvar = session[:comments].try(:[], @comment.id)

因为[]是你做时方法的名称[@comment.id]

2022-08-08