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}

:D

于 2012-04-17T10:47:37.697 回答