`
together
  • 浏览: 219217 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

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

    博客分类:
  • ruby
阅读更多
如题,比如我需要显示A.B.C.name,那么中间的A B C都有可能为NIL。所以直接这样写肯定是不行的。
在velocity等模板中,可以这样来写$!{A.B.C.name},中间遇到不能处理的数据,就返回为空值。
那么有没有一种类似的标签写法呢?当然自己写一个模块来封装处理一下也是可以做到的。只是ROR中如果直接提供了就更好了。

主要用于显示层的操作。
分享到:
评论
4 楼 together 2006-12-29  
对,就是这个就行了。
用异常来处理。TKS。
3 楼 axgle 2006-12-29  
together 写道
谢谢。
不过在A B 中有一个为NIL的时候还是会报错的。好像只能自己写一个方法来处理了。感觉不爽。

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

我测试了一下,是个好办法。(若没有你提的这个问题,我也不知道原来还可以这样)
2 楼 together 2006-12-29  
谢谢。
不过在A B 中有一个为NIL的时候还是会报错的。好像只能自己写一个方法来处理了。感觉不爽。
1 楼 axgle 2006-12-29  
<%=A.B.C.name unless A.B.C.name.nil?%>

或者在helper中定义一个方法。

相关推荐

    如何调用oracle的函数、存储过程

    而存储过程则是不返回值的SQL或PL/SQL代码集合,它可以包含输入、输出参数,甚至可以有多个返回结果集。调用这两种对象的方式略有不同,但都涉及到SQL或者编程语言的接口。 1. **SQL层面调用** 在SQL查询中,你...

    DELPHI 7 调用 JAVA 接口

    运行Delphi程序,查看Java接口是否被正确调用,以及返回的结果是否符合预期。 以上步骤详细介绍了如何在Delphi 7中通过JNI调用Java接口,实现两者的交互。这为混合编程提供了可能,允许开发者充分利用两种语言的...

    swift-系统返回按钮事件拦截Swift版本

    在iOS应用开发中,我们经常会遇到需要自定义系统返回按钮行为的情况,比如在用户未保存数据时阻止其离开页面或者在退出前展示确认对话框。本文将深入探讨如何在Swift中实现系统返回按钮事件的拦截。 首先,我们需要...

    ios-IOS JS与OC互相调用(JavaScriptCore).zip

    在JavaScript调用OC方法时,有时可能需要等待原生方法执行完后再返回结果。这时可以使用block或者闭包作为参数,传递一个JavaScript函数,这样OC方法执行完成后,可以通过这个函数传递结果回JavaScript。 ```objc...

    Swift视频教程:函数篇 形式参数与返回值④可选元组返回

    - 形式参数是函数定义时声明的占位符,它们在函数体内代表实际调用函数时传递的值。例如,`func greet(name: String) -&gt; String { return "Hello, \(name)!" }`中的`name`就是形式参数,用于接收传入的字符串。 2....

    10基础 7:读取和返回 HTTP 请求(1).md

    // c.DefaultQuery("name", "unknown") 在未指定name时,返回 "unknown" // c.DefaultQuery("id", "none") 在未指定id时,返回 "none" ``` #### 请求消息体 如果客户端在请求中发送了JSON或表单数据作为消息体,...

    Delphi返回工龄大于10年的数据库记录..rar

    在执行查询和处理结果时,必须考虑错误处理。使用Try...Except...Finally结构捕获可能出现的异常,并确保在完成操作后关闭Recordset和Connection,避免资源泄露。 7. 实例代码: 下面是一个简化的Delphi代码示例...

    ios-地理编码.zip

    这个方法会异步返回一个`CLPlacemark`对象数组,其中包含了地理编码的结果。每个`CLPlacemark`对象包含了地址的详细信息,如国家、城市、街道等,以及对应的`CLLocationCoordinate2D`对象,表示经纬度坐标。 ```...

    ios-Swift中调用FMDB.zip

    FMDB是一个Objective-C编写的SQLite数据库管理工具,但在Swift项目中也能无缝集成。 首先,我们需要了解SQLite的基本概念。SQLite是一个轻量级的、嵌入式的、关系型数据库系统,它支持多种数据库操作,如创建、查询...

    ios demo,NSNotificationCenter,app进入后台时的调用和就、进入前台时的调用

    本示例“ios demo,NSNotificationCenter,app进入后台时的调用和进入前台时的调用”是关于如何利用`NSNotificationCenter`来监听应用状态的变化,特别是当应用进入后台和返回前台时的事件处理。`...

    delphi xe6 android 调用照相机摄像头拍照片

    在使用Delphi XE6开发Android应用程序时,调用照相机功能是常见的需求,这使得用户可以直接通过应用拍摄照片。本教程将详细讲解如何在Delphi XE6中实现这一功能,无需额外的组件,只需利用系统自带的功能,确保代码...

    Delphi调用控制面板实现桌面和鼠标设置..rar

    在Delphi编程环境中,开发人员经常需要调用操作系统提供的功能,例如控制面板的各种设置,以增强应用程序的功能或提供用户友好的界面。本压缩包文件"Delphi调用控制面板实现桌面和鼠标设置"可能包含了一个示例项目...

    WKWebView下iOS与JS相互调用

    3. **性能**:WKWebView的JavaScript执行环境独立于主线程,但`evaluateJavaScript`会阻塞直到返回结果,因此大量或耗时的JS操作应避免。 4. **加载状态**:使用`WKNavigationDelegate`监听加载进度和错误,以便进行...

    LUA脚本语法说明文档

    函数可以返回多个值,调用时可以省略接收器,例如: ```lua function add(a, b) return a + b end local sum = add(3, 5) -- sum 获得 8 ``` VI. 模块与包 Lua 通过模块系统来组织代码,每个模块可以包含变量、...

    delphi 调用DLL 及释放例子.rar

    本示例将探讨如何在Delphi中调用DLL以及正确地释放资源。 首先,我们需要理解DLL的工作原理。DLL文件包含可执行代码和数据,当多个程序需要使用相同功能时,只需加载一次DLL,而不是每个程序都包含一份副本。这使得...

    用BDE方式而不是ADO来调用带参数的存储过程

    本文将深入探讨如何使用BDE(Borland Database Engine)而非ADO(ActiveX Data Objects)来调用带有参数的存储过程,并分析其背后的原理及应用场景。 ### BDE与ADO简介 #### BDE (Borland Database Engine) BDE是...

    go_cgo调用posix接口代码

    这些函数是C语言标准库中用于目录操作的部分,而`cgo`则允许Go语言程序直接与C代码进行交互。 首先,`cgo`是Go语言的标准库`cmd/cgo`的一部分,它允许Go代码导入C代码并直接调用C函数。这在需要利用已有的C库或者...

    UITextField

    iOS提供了`NSNotification.Name.UIKeyboardWillShow`和`NSNotification.Name.UIKeyboardWillHide`两个通知,分别在键盘即将显示和即将隐藏时触发。通过这些通知,我们可以调整`UITextField`的frame,使其避开键盘: ...

    C/C++的Lua快速入门

    8. **nil**:表示“无”,类似于C/C++中的`NULL`,但nil是一个独立的类型而不是空指针。 #### 函数 Lua中的函数具有很大的灵活性,不仅支持返回多个值,还允许局部变量定义。 1. **函数定义**:使用`function`...

    Go连接数据库.rar

    `QueryRow`适用于返回单行结果的情况,而`Query`则用于多行结果。 假设我们有一个`users`表,要插入新用户数据: ```go insertStmt := `INSERT INTO users (name, email) VALUES (?, ?)` _, err = db.Exec...

Global site tag (gtag.js) - Google Analytics