1

私は部分的にレンダリングしているPostオブジェクトを持っています.1つの要素は

= post.created_at

時間をフォーマットしたいので、部分的およびモデルフックとして strftime のバリエーションを試しました。

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

これらは、レンダリングするものがある場合は正常に機能しますが、一連の投稿がない場合、ページのレンダリングでエラーが発生します:

undefined method `strftime' for nil:NilClass

投稿がない場合は最初の 1 つだけが機能し、ページに空の投稿 div が 1 つ作成されます。

モデルまたはテンプレートのいずれかで、空のときにキャッチして何もレンダリングしないようにする必要があります。

私はこれを投稿しているので、誰かが私がこれまでに得たものを考えるのを手伝ってくれるかもしれません. 基本的に、時間をフォーマットする必要がありますが、フォーマットするものが何もないときにキャッチすることはできます。

4

1 に答える 1

2

Railstryでは、created_at が nil でない場合にのみメソッドを実行する をいつでも使用できます。

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

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

于 2010-11-18T19:19:25.717 に答える