0

我有这样的电话:

<%= 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并没有使其成为链接。

如何在此块中生成实际链接?

谢谢。

编辑:有人对如何做到这一点有任何想法吗?

4

2 回答 2

0

我需要像这样包装整个map结果raw

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

如需更完整的答案,请查看此处

于 2012-12-31T01:38:27.743 回答
0

你可以这样做

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

更新

也许试试这样

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

这应该将所有链接保存在数组中以供进一步使用。现在你可以试试

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

未经测试的代码。请注意确定这是否可行。

于 2012-12-18T08:01:58.997 回答