我试图只显示索引页面上的属性。到目前为止,这是我的代码,它确实有效:
<% @contacts.each do |contact| %>
<strong>Name: <%= contact.name %></strong>
<% if contact.phone %>
<p>Phone number: <%= contact.phone !="nil" %></p>
<% end %>
<% if contact.category !="nil" %>
<p>Category: <%= contact.category %></p>
<% end %>
<% if contact.area !="nil" %>
<p>Area: <%= contact.area %></p>
<% end %>
<% if contact.website !="nil" %>
<p>Website: <%= contact.website %></p>
<% end %>
<% if contact.email%>
<p>Email: <%= contact.email !="nil" %></p>
<% end %>
<% end %>
我的问题是
我是否有更简洁的方法(即不是为每个属性指定if)?
由于
答案 0 :(得分:2)
<% @contacts.each do |contact| %>
<strong>Name: <%= contact.name %></strong>
<%["phone", "category", "area", "website", "email"].each do |attr| %>
<% unless contact.send(attr).blank?%>
<p>
<%= attr.capitalize%>
</p>
<%= contact.send(attr.to_sym)%>
<% end %>
<% end %>
<% end %>