尝试使用try时如何防止nil返回

问题描述

| 我有以下代码行:
truncate(blog.comments.first.try(:content),:length => 125)
这里的问题是,如果内容为空,则返回
nil
。如何防止滑轨输出
nil
?     

解决方法

        假设您想要一个空字符串
truncate(blog.comments.first.try(:content) || \"\",:length => 125)
    ,        碰巧的是,NilClass实现了一个
#to_s
,它返回了
\"\"
,因此:
truncate(blog.comments.first.try(:content).to_s,:length => 125)
但是,我很好奇:在什么情况下ѭ7遇到问题,根据我的经验,erb模板有时会调用显式转换
#to_s
,因此实现显式转换器的任何类型(包括nil)都将毫不费力地工作。