1

我有一个要部分渲染的 Post 对象,其中一个元素是

= post.created_at

我想格式化时间,所以我尝试了部分 strftime 的变体并作为模型钩子。

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

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

undefined method `strftime' for nil:NilClass

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

我需要在模型或模板中做一些事情来捕捉它什么时候是空的并且什么也不渲染,这看起来很基本,但我还没有找到正确的搜索词来找到我理解的东西来实现。

我发布这个,所以有人可能会帮助我思考到目前为止我所拥有的东西。基本上我需要格式化时间,我可以这样做,但在没有什么可以格式化的时候捕获。

4

1 回答 1

2

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

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

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

于 2010-11-18T19:19:25.717 回答