在属性不存在时显示链接

时间:2016-09-01 16:22:47

标签: ruby-on-rails

使用Rails 4.在我看来,我发现自己做了很多事情:

<% if spot.phone.present? %>
  <%= shop.phone %>
<% else %>
  <%= link_to "Update", edit_shop_path %>
<% end %>
<% if spot.email.present? %>
  <%= shop.email %>
<% else %>
  <%= link_to "Update", edit_shop_path %>
<% end %>

只要属性不存在,就应显示标记<%= link_to "Update", edit_shop_path %>。有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

制作部分:

<% if attr.present? %>
  <%= attr %>
<% else %>
  <%= link_to "Update", edit_shop_path %>
<% end %>

然后只重用这个部分:

<%= render "partial", attr: spot.phone %>
<%= render "partial", attr: spot.email %>

答案 1 :(得分:0)

尝试使用三元运算符:

<%= spot.phone.present? ? shop.phone : (link_to "Update", edit_shop_path) %>