让我们考虑字符串“我的名字是#{@user.name}”所以我需要检查并处理这部分“#{@user.name}”中的错误。错误可能是因为“#{user.name}”(用户对象未定义)或“#{other_object.name}”或访问不属于用户表的属性。
问问题
55 次
3 回答
0
您可以使用:
name = "#{object.name}" if object.respond_to?(:name)
如果object
不响应#name
方法(它也处理 is 时的情况object
)nil
,nil
将分配给name
变量。
于 2012-08-10T09:45:26.570 回答
0
简单的错误处理
begin
string = "My name is {@user.name}"
rescue
string = "My name is not currently available"
end
于 2012-08-11T21:02:51.093 回答
0
尝试这个
"My name is #{@user.try(:name)}"
TRY 方法如果捕获到异常将返回 nil,它不会抛出任何错误。
于 2012-08-10T10:04:29.977 回答