分别显示Acts_as_taggable标签

时间:2013-09-24 18:57:02

标签: ruby-on-rails ruby-on-rails-4 acts-as-taggable-on

我正在尝试在Span中显示每个TagQuestion。我使用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

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

2 个答案:

答案 0 :(得分:1)

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 %>

答案 1 :(得分:0)

我不知道这个插件,但我在代码片段中看到的一个问题是,您不是在特定对象@question上操作,而是在类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 %>

正如你所看到的,这就是我刚刚告诉你的内容。您不必处理该类,而是必须处理特定对象,或者如图所示,对象集合。