2

让我们考虑字符串“我的名字是#{@user.name}”所以我需要检查并处理这部分“#{@user.name}”中的错误。错误可能是因为“#{user.name}”(用户对象未定义)或“#{other_object.name}”或访问不属于用户表的属性。

4

3 回答 3

0

您可以使用:

name = "#{object.name}" if object.respond_to?(:name)

如果object不响应#name方法(它也处理 is 时的情况objectnilnil将分配给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 回答