2014-11-06 43 views
0

我正在使用以下代码来显示联系人的名称并链接到他们的消息。使用带条件的link_to

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

当接触从列表中删除,我想展现一个占位符,如“删除联系人”,并链接到该消息,而不是仅仅显示的URL。我试过link_to_if,但它没有提供预期的输出。有没有一个有效的解决方案呢?

+0

您可以在第一个参数中使用三元运算符来更改链接的文本,那是你在找什么? – 2014-11-06 14:34:21

+0

@PaulRichter是的,我试过了,但是在使用link_to时无法使语法安静。 – user3224820 2014-11-06 14:40:29

回答

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 %> 
+0

使用第二个建议时,我得到未定义的方法“contact?”错误。 – user3224820 2014-11-06 14:52:18

+0

我认为它是该协会的一部分。然后简单地检查存在。 – 2014-11-06 14:53:01

+0

谢谢。它现在有效! – user3224820 2014-11-06 14:59:58