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は表示されません。これを行うための最善のアプローチはどのように、そして何ですか?ビューの状態?

4

3 に答える 3

1

試す

%h5 #{house.lastminute} if house.lastminute.present?
于 2012-04-17T09:44:16.727 に答える
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}
于 2012-04-17T09:51:55.790 に答える
1

はい、プレゼンテーション レイヤー (ビュー) に条件を設定する必要があります。プレゼンテーションロジックで何を変更したいのか(ユーザーがそれをどのように見るか)であるため、それも悪くありません。

ただし、ログインを処理するためのヘルパー メソッドが必要です

1 - そのきれい

2 - 条件付きロジックが複雑になると、管理が容易になります

私の好ましい解決策は、ヘルパーメソッドを持つことです

あなたのヘルパーモジュールで

def lastminute?(lastminute)
  lastminute.nil?
end

あなたの見解では

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

HTH:D

于 2012-04-17T10:47:37.697 に答える