2012-11-30 16 views
1

我有一個的link_to消息條件句

<%= link_to "Messages (#{Messages.count})", messages_path %> 

但如果計數爲0,我想取出(0)。

如何在link_to內加入'If條件'?

回答

3

您有幾種選擇,但是這一次應該在這種情況下工作:

link_to "Messages #{Messages.count > 0 ? '(%d)' : ''}" % Messages.count, messages_path 

對於更復雜的邏輯比這你想要做一個輔助方法:

link_to label_with_optional_counter("Messages", Messages.count), messages_path 

你在適當的輔助模塊中定義該方法:

def label_with_optional_counter(label, count) 
    "%s #{count > 0 ? '(%d)' : ''}" % [ label, count ] 
end 
+0

horray!謝謝! –

+0

調用的%符號是什麼? –

+1

通常''''表示* modulo *,因爲'15%10'等於'5',但在這種情況下'String#%'實際上是使用['sprintf'](http:// apidock)的更簡潔的方式。 COM /紅寶石/核心/ sprintf的)。這種事情在Python中的工作方式也幾乎完全相同。 – tadman