使用try时如何防止返回nil

时间:2011-06-10 00:57:49

标签: ruby-on-rails ruby ruby-on-rails-3

我有以下代码行:

truncate(blog.comments.first.try(:content), :length => 125)

问题是,如果内容为空,则返回nil。如何防止rails输出nil

2 个答案:

答案 0 :(得分:2)

假设你想要一个空字符串

truncate(blog.comments.first.try(:content) || "", :length => 125)

答案 1 :(得分:1)

碰巧,NilClass实现了#to_s,返回"",所以:

truncate(blog.comments.first.try(:content).to_s, :length => 125)

然而,我很好奇:在什么情况下你有nil?问题根据我的经验,erb模板在某些时候会调用显式转换#to_s,所以任何类型(包括nil)都是实现显式转换器将毫不费力地工作。