0

使用 Rails 3。这是一个前端设计问题。

目标:

Contact | Email | URL

显示.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 %>

|仅当前后元素具有值时,如何输入?在当前阶段,如果没有值,则不输出任何内容。

非常感谢。

4

1 回答 1

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 模板不是复杂逻辑的好地方。以上是可以接受的。

于 2012-06-10T12:37:43.533 回答