【发布时间】:2011-10-12 01:42:04
【问题描述】:
我目前正在工作的项目在视图中有以下类似代码
<%= product.provider.name %>
上面的代码是获取产品的“供应商”并显示他/她的名字。但我的问题是,有时当'provider' 为零时,这段代码会失败。 (我知道这有点不寻常,但由于我使用的是遗留数据库,所以会发生这种情况)
为了检查 nil 验证,我编写了以下代码(在我的 ApplicationHelper 中)
def t(obj, attr)
obj.nil? ? "" : obj.send(attr.to_sym)
end
现在我做的是这样的
<%= t(product.provider, "name") %>
尽管这可行,但我遇到了另一个问题,我找到了这段代码
<%= product.provider.provider_type.title %>
这里的问题是,在上面的代码中,'provider' 或 'provider_type' 可以是 nil。
我正在研究的是一种异常处理机制,可以处理任意数量的嵌套关系。
我想你们都知道我想要做什么......
或者这是在嵌套关系中处理 nil 值的完全错误的路径
您的想法将不胜感激(我在 rails 2.3.8 上运行)
提前致谢
干杯
同人
【问题讨论】:
标签: ruby-on-rails ruby exception-handling null