2010-11-23 33 views
0

無論我使用何種語言,我總是需要顯示由某個分隔符分隔的字符串列表。CONCAT_WS for Rails?

比方說,我有一個產品集合,需要顯示其名稱,由', '分隔。 所以我有一個產品集合,其中每個產品都有'name'屬性。我正在尋找一些Rails的方法/助手(如果它不存在,也許你可以給我想法,以軌道方式構建它),它會收到一個集合,一個屬性/方法將在每個集合項目上調用和分隔符的字符串。

但我希望在最後不包含分隔符,因爲我將以「筆記本,計算機,鍵盤,鼠標」結尾,最後2個字符不應該在那裏。

例:

concat_ws(@products, :title, ", ") 
#displays: Notebook, Computer, Keyboard, Mouse 

假設@products有4個產品,當然名稱。

謝謝!

回答

1

你應該嘗試助手to_sentence。

如果你有一個數組,你可以這樣做

array.to_sentence。如果你的數組有香蕉,蘋果,巧克力數據,它將變成: 香蕉,蘋果和巧克力。

所以,現在,如果你有一個名爲場的AR模型,你可以不喜歡

MyModel.all.map { |r| r.name }.to_sentence 
+0

我喜歡to_sentence幫手,但我怎樣才能使有產品名稱的數組一個來自has_many關係的完整AR對象的數組? – emzero 2010-11-23 22:30:37

+0

我確實更新了我的答案:-) – 2010-11-24 09:56:42

1
@products.map(&:title).join(', ')