论坛首页 编程语言技术论坛

A.B.C.name调用时,遇到NIL值如何忽略NIL错误而返回正确的结果?

浏览 3999 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-12-29  
如题,比如我需要显示A.B.C.name,那么中间的A B C都有可能为NIL。所以直接这样写肯定是不行的。
在velocity等模板中,可以这样来写$!{A.B.C.name},中间遇到不能处理的数据,就返回为空值。
那么有没有一种类似的标签写法呢?当然自己写一个模块来封装处理一下也是可以做到的。只是ROR中如果直接提供了就更好了。

主要用于显示层的操作。
   发表时间:2006-12-29  
<%=A.B.C.name unless A.B.C.name.nil?%>

或者在helper中定义一个方法。
0 请登录后投票
   发表时间:2006-12-29  
谢谢。
不过在A B 中有一个为NIL的时候还是会报错的。好像只能自己写一个方法来处理了。感觉不爽。
0 请登录后投票
   发表时间:2006-12-29  
together 写道
谢谢。
不过在A B 中有一个为NIL的时候还是会报错的。好像只能自己写一个方法来处理了。感觉不爽。

若不想写一个方法来处理,那么可以试试下面这个来完全忽略nil错误
<%=A.B.C.name rescue nil%>

我测试了一下,是个好办法。(若没有你提的这个问题,我也不知道原来还可以这样)
0 请登录后投票
   发表时间:2006-12-29  
对,就是这个就行了。
用异常来处理。TKS。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics