2012-04-17 17 views
1

以下は私のビューテンプレートの一部です。オブジェクトが空の場合のビュー内の要素の条件付き表示

%ul.property_list 
%li.lastminute 
    %span.icon 
    %h5 #{house.lastminute} 
    %h6 #{house.lastminute_conditions} 
%li.guest 
    %span.icon 
    %h5 #{house.guests} 

一部の家屋には売れ残りの売り場があり、ないものもあります。 lastminute属性が満たされている場合は、%li.lastminuteブロックを表示します。 lastminute属性が空の場合、%li.lastminuteは表示されません。どのようにこれを行うための最良のアプローチは何ですか?ビュー内の状態?

+1

あなたは私が推測する。この場合、ビューの条件を配置する必要があります。 hamlのハイフン( - )で条件を開始し、そのコードを理解します。条件自体は本当にシンプルです(家の場合) – aishwarya

答えて

1
%ul.property_list 
%li.lastminute 
    %span.icon 
    - if house.lastminute 
    %h5 #{house.lastminute} 
    %h6 #{house.lastminute_conditions} 
%li.guest 
    %span.icon 
    %h5 #{house.guests} 
1

はい、あなたはプレゼンテーション層(ビュー)の状態を持っている必要があります

%h5 #{house.lastminute} if house.lastminute.present? 
1

を試してみてください。あなたがプレゼンテーションロジック(ユーザーがそれを見ている方法)で変えたいものなので、どちらも悪くない。

しかし、私はあなたのログイン

1を処理するためのヘルパーメソッドを持つ好むだろう -

2そのクリーン - あなたの条件ロジックが複雑になると、

私の好みを管理するために容易になります解決策は、あなたのヘルパーモジュールにヘルパーメソッド

を持つことになる

def lastminute?(lastminute) 
    lastminute.nil? 
end 
012あなたのビューで

- if lastminute?(house.lastminute) 
    %li.lastminute 
    %span.icon 
    %h5 #{house.lastminute} 
    %h6 #{house.lastminute_conditions} 

HTH:D

+0

クリアソリューションのおかげで... – Remco

関連する問題