使用带有条件的link_to

时间:2014-11-06 14:30:04

标签: ruby-on-rails

我使用以下代码显示联系人的姓名并链接到他们的消息。

<%= link_to message.contact.try(:name), message_path(message) %>

当从列表中删除联系人时,我想显示一个占位符,如&#34;联系已删除&#34;并链接到消息而不是仅显示URL。我试过link_to_if,但它没有提供预期的输出。对此有没有有效的解决方案?

1 个答案:

答案 0 :(得分:1)

如果链接名称相同,您可以使用link_to_if。您也可以将其与解决方法一起使用。

<%= link_to_if message.contact, message.contact ? message.contact.name : "Contact deleted", message_path(message) %>

但是,我认为最干净的方法是if

<% if message.contact %>
  <%= link_to message.contact.name, message_path(message) %>
<% else %>
  Contact deleted
<% end %>