我正在使用以下代码来显示联系人的名称并链接到他们的消息。使用带条件的link_to
<%= link_to message.contact.try(:name), message_path(message) %>
当接触从列表中删除,我想展现一个占位符,如“删除联系人”,并链接到该消息,而不是仅仅显示的URL。我试过link_to_if
,但它没有提供预期的输出。有没有一个有效的解决方案呢?
我正在使用以下代码来显示联系人的名称并链接到他们的消息。使用带条件的link_to
<%= link_to message.contact.try(:name), message_path(message) %>
当接触从列表中删除,我想展现一个占位符,如“删除联系人”,并链接到该消息,而不是仅仅显示的URL。我试过link_to_if
,但它没有提供预期的输出。有没有一个有效的解决方案呢?
如果链接的名称相同,则可以使用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 %>
使用第二个建议时,我得到未定义的方法“contact?”错误。 – user3224820 2014-11-06 14:52:18
我认为它是该协会的一部分。然后简单地检查存在。 – 2014-11-06 14:53:01
谢谢。它现在有效! – user3224820 2014-11-06 14:59:58
您可以在第一个参数中使用三元运算符来更改链接的文本,那是你在找什么? – 2014-11-06 14:34:21
@PaulRichter是的,我试过了,但是在使用link_to时无法使语法安静。 – user3224820 2014-11-06 14:40:29