使用Rails 3.这是一个前端设计问题。
目标:
Contact | Email | URL
show.html.erb:
<% if !@shop.contact.blank? %>
<%= @shop.contact %>
<% end %>
<% if !@shop.email.blank? %>
<%= @shop.email %>
<% end %>
<% if !@shop.url.blank? %>
<%= link_to @shop.url, @shop.url, :target => "_blank" %>
<% end %>
只有当前一个元素和后一个元素有值时,我如何输入|
?在目前阶段,如果没有值,则不输出任何内容。
非常感谢。
答案 0 :(得分:1)
<% url = link_to(@shop.url, @shop.url, :target => "_blank") if @shop.url.present? %>
<%= [@shop.contact, @shop.email, url].select(&:present?).join(" | ") %>
这将创建一个包含所有元素的数组,选择具有值的元素(因为present?
与blank?
相反)然后通过在它们之间放置一个管道来连接其余数组的每个元素
也就是说,如果你有更复杂的逻辑,你应该创建一个辅助方法。 ERB模板不适合复杂的逻辑。以上是接受的。