2014-11-06 44 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