1

我正在尝试显示跨度中的每个Taga Question。我使用acts_as_taggable_on

我设法让下面的代码工作,但它是一个标签云。意味着显示所有标签。

<% tag_cloud Question.tag_counts, %w[s m l] do |tag, css_class| %>
    <span class="label label-default">
      <%= link_to tag.name, tag_path(tag.name), class: "css_class" %>
    </span>
  <% end %>

要检索标签:

question.tag_list

有人可以帮我重构该代码,以便只显示问题上的当前标签吗?

4

2 回答 2

2

question.tag_list将返回一个字符串,您不能循环遍历它。

question.tags将返回一个数组,

<% question.tags.each do |tag| %>
    <span class="label label-default">
      <%= link_to tag.name, tag_path(tag.name), class: "css_class" %>
    </span>
 <% end %>
于 2013-09-24T19:22:24.520 回答
0

我不知道该插件,但我在您的代码片段中看到的一个问题通常是您不是在特定 object 上操作@question,而是在 class 上操作Question。如果我不得不猜测,我会说这是您问题的根源。

编辑:

所以,我刚刚查看了 gem 的文档,我直接在那里找到了这个代码片段:

<% tag_cloud(@tags, %w(css1 css2 css3 css4)) do |tag, css_class| %>
  <%= link_to tag.name, { :action => :tag, :id => tag.name }, :class => css_class %>
<% end %>

如您所见,这几乎就是我刚刚告诉您的内容。而不是在类上工作,您必须在特定对象上工作,或者像在所示案例中那样,在对象集合上工作。

于 2013-09-24T19:10:03.977 回答