我有这样的电话:
<%= 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 :(得分: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('., ') %>
未经测试的代码。请注意这是否有效。
答案 1 :(得分:0)
我需要将整个map
结果包装成raw
,如下所示:
<%= raw(@product.categories.map{ |cat| raw(link_to(cat.name, category_path(cat))) }.join(', ') + ".") %>
要获得更完整的答案,check here。