2012-04-18 12 views

答えて

6

<%= @event.date || "TBA" %>とする必要があります。

あなたのコメントに応じて、はい、モデルでこれを行うことができますが、それは悪い考えです。どうして?

まず、データの表示については、その理由からビューに属しています。

第2に、それは物事を壊す可能性があります。あなたがモデルでそれをした場合、@event.dateは時には日付と時には文字列を返すことがあります。 @event.date.hourdateを​​と呼んでいたらどうなりますか?あなたはエラーが発生します。唯一の修正点はどこでもそれを確認することです。恐ろしいことです。

あなたが本当にそれをあなたがこのような何かを見ることができるapplication_helper.rbでのヘルパーメソッドを作成することができます多くのことをやってしようとしている場合:

def date_or_tba(date) 
    date || "TBA" 
end 

あなたは、あなたのビューで書くことができます:

<%= date_or_tba @event.date %> 

文字列「TBA」の使用を1つの場所に限定することは、タイピングはそれほど重要ではありませんが、それを変更する必要がある場合(例えば18の目的など)は意味がありません。本当に簡単。

+0

素晴らしいです。それはまさに私が後にしていることです。モデルでこれを行う方法はありますか?@ event.dateをどこにでも呼び出すと、どこにでも "TBA"として表示されますか? – Synthesezia

+0

あなたはそうかもしれませんが、私はそれを強く勧告します。私は私の答えで詳しく説明します。 – Russell

+0

OK、これはなぜ今は悪い考えです。ヘルパーを追加すると、行く方法のように思えます。ありがとう! – Synthesezia

関連する問題