haml collection和nil - >的strftime

时间:2010-11-18 17:20:19

标签: ruby conditional haml null strftime

我有一个Post对象,我在局部渲染,其中一个元素是

= post.created_at

我想格式化时间,所以我尝试在部分和作为模型钩子中使用strftime的变体。

= post.created_at.strftime('etc etc')
&
= post.formatted_time

当有东西要呈现时,这些工作正常,但是当没有一组帖子时,呈现页面时出错:

undefined method `strftime' for nil:NilClass

只有第一个在没有帖子时才有效,并在页面上创建一个空的post div。

我需要在模型或模板中做一些事情,以便在它为空时捕获并且不渲染任何内容,这似乎是基本的,但我还没有找到正确的搜索术语来找到我理解要实现的内容。

我发布这个,所以有人可能会帮助我思考到目前为止我所做的事情。基本上我需要格式化时间,我可以做但只有在没有格式化时才能捕捉。

1 个答案:

答案 0 :(得分:2)

在Rails中,您始终可以使用try,仅当created_at不是nil时才会运行该方法:

= post.created_at.try(:strftime, 'etc etc')

http://apidock.com/rails/Object/try