我发现我经常需要使用结构来避免undefined method 'name' for nil:NilClass
的Rails错误。
结构如下:
if country.state
country.state.name
end
这似乎是一个经典案例,在一个简单的块中出现两次country.state
重复自己。有没有办法干这个?
答案 0 :(得分:4)
答案 1 :(得分:2)
嗯,不是真的。一种选择是安装andand gem,但为此引入依赖可能有点多。
答案 2 :(得分:1)
除了使用稍微简洁的语法:
country.state.name unless country.state.nil?
我不认为用给出的信息干嘛。我认为如果你不能确定country.state是否为nil,你可能需要查看负责设置该值的代码,并确定这是正常情况还是上游验证器应该捕获它。