2011-10-09 68 views
1

在我的节目从一个支架,我有以下的设计页面:如果页面上的属性为空白,如何隐藏页面div?

<div id="show_location_main_area" class="grid_24"> 
    <p> 
     <strong><%= @business_location.website %></strong> 
    </p> 
    <p> 
     <strong><%= @business_location.address %></strong> 
    </p> 
</div> 
<div class="grid_5"> 
    <%= gmaps(@json) %> 
</div> 

如果@business_location.address空白我不想在页面上显示此部分:

<div class="grid_5"> 
    <%= gmaps(@json) %> 
</div> 

如何这样做?

谢谢。

回答

3

你可以试试以下条件 -

unless @business_location.address.nil? 
unless @business_location.address.empty? 
if @business_location.address  

示例 -

<% unless @business_location.address.nil? %> 
    <div class="grid_5"> 
     <%= gmaps(@json) %> 
    </div> 
<% end %> 
+0

感谢您的帮助! – LearningRoR

+3

为了扩大这个范围,通常最好检查'blank',而不是'nil?'或'empty?'。原因是'nil?'只检查nil值('“”.nil?#false')。 'empty?'是一种对Strings,Arrays和Hashes有效的Ruby方法,如果其中任何一个的长度为0,则返回true。但是,'nil.empty?'会引发NoMethodError。 'blank?'是一个Rails方法,它和'empty?'一样工作,但对任何对象都有效。如果对象只包含空格,它也会返回true。例如:'“\ n”.blank? #true'和'“\ n”.empty? #false'。底线是“空白?”更通用。 – bricker

+0

谢谢....有道理。 – Jayendra

1

只是不包括它在所有:

<% if @business_location.address.present? %> 
    <div class="grid5"> 
     <%= gmaps(@json) %> 
    </div> 
<% end %> 

或者,如果你需要的.grid5<div>那里为您的HTML/CSS工作:

<div class="grid5"> 
    <% if @business_location.address.present? %> 
     <%= gmaps(@json) %> 
    <% end %> 
</div>