私はレンダリングしたいHAMLテンプレートを持っています。オプションで、ここではpostと呼ばれるローカル変数を提供して、提供された変数を要素属性の値として使用するか、明示的なデフォルトに戻します。HAMLの地方のためのデフォルト値の使い方は?
以下のコードは、私が意味することを示していますが、post
が提供されていないと実行に失敗します。これにはクリーンな解決策がありますか?私はこれらのフィールドのかなりの部分を持っているので、私は考えることができる唯一の他の選択肢である- if defined?
ステートメントでそれらを複製し続ける必要はありません。
%label
Post title
%input{:name => "title",
:value => (defined? post) ? post.title : ""} }
は、任意の変数を持つ部分的にerbですが、通常は 'post || = nil'とだけ言います。次に、未定義の変数例外を打つことなく、条件付きロジックを実行できます。 –