2012-12-18 38 views
0

我有這樣一個電話:如何在.map塊中生成鏈接?

<%= product.categories.map{|cat| cat.name}.join(', ').to_s + "." %> 

我想這樣做,是這樣的:

<%= product.categories.map{|cat| link_to cat.name, category_path(cat)}.join(', ').to_s + "." %> 

當我做到這一點,它實際上吐出路徑/categories/1文本和實際上並沒有使它成爲一個鏈接。

如何生成此塊內的實際鏈接?

謝謝。

編輯:任何人有任何想法如何做到這一點?

+0

我想你想映射,然後使用to_sentence像這樣:http://stackoverflow.com/questions/1441328/how-to-use-to-sentence-for-links – jxpx777

回答

0

我需要換整個map結果raw這樣的:

<%= raw(@product.categories.map{ |cat| raw(link_to(cat.name, category_path(cat))) }.join(', ') + ".") %> 

對於一個更完整的答案,check here

0

你可以做這樣的

<% product.categories.each do |p| %> 
<%= link_to p.name, category_path p %> 
<% end %> 

UPDATE

也許嘗試像這樣

<% array = product.categories.collect { |p| raw link_to p.name, category_path p } %> 

這應該將數組保存爲進一步使用在所有的鏈接。現在你可以試試

<%= array.join('., ') %> 

未經測試的代碼。請注意,如果這將工作。

+0

我知道,但那不會幫助我的格式 - 這就是爲什麼我這樣做。 – marcamillion

+0

即這就是爲什麼我使用'.map'和'join' - 所以我可以按我想要的方式格式化輸出。我想要做的就是添加一個鏈接到該格式。 – marcamillion

+0

你能否貼上你想要的輸出? – Rahul