我有一个问题,试图从acts_as_taggable_on tag_list制作一个列表我有标签列表数组,我想列出它所以我试试这个:
<%= proyects.tag_list.each do |tagsx| %>
* <%= tagsx %> <br>
<% end %>
我得到的列表我正在寻找,但也是整个阵列...当它呈现时,看起来像这样..
* AJAX
* Rails
* Heroku
* Prototype
AJAX, Rails, Heroku, Prototype
有关摆脱最后一行的任何想法?或者你们知道一种更有效的方法吗?
提前致谢。
改变这个:
<%= proyects.tag_list.each do |tagsx| %>
对此:
<% proyects.tag_list.each do |tagsx| %>
您不希望输出.each
调用的返回值,只是输出数组的元素。用块调用Array#each
会返回数组(就像你一样):
每个{|项目|阻止}→ary 每个→an_enumerator 对
self
中的每个元素调用一次,将该元素作为参数传递。如果没有给出块,则返回枚举器。
这就是逗号分隔列表的来源。
因为你的代码中有拼写错误:-)
<%- proyects.tag_list.each do |tagsx| %>
* <%= tagsx %> <br>
<% end %>
看到不同?
在第一个%符号后没有'='
%=表示将Ruby表达式的结果返回给视图
% - 表示计算Ruby表达式,但不返回任何结果
您的问题中的代码获取“proyects.tag_list”,执行循环,在此期间打印出单个标记,然后将整个数组返回到视图,因为'='