【问题标题】:Finding related tags using acts-as-taggable-on使用acts-as-taggable-on查找相关标签
【发布时间】:2010-03-18 01:55:58
【问题描述】:

在 tag#show 中,我列出了所有带有该标签的条目。在页面底部,我想有类似的内容:“相关标签:链接、列表、相关标签”我的视图如下所示:

<h2><%= link_to 'Tag', tags_path %>: <%= @tag.name.titleize %></h2>

<% @entries.each do |entry| %>
  <h2><%= link_to h(entry.name), entry %></h2>

  <%- unless entry.phone.empty? -%>
    <p><%= h(entry.phone) %></p>
  <%- end -%>

  <%- unless entry.address.empty? -%> 
    <p><%= h(entry.address) %></p>
  <%- end -%>

  <%- unless entry.description.empty? -%>
    <p><%= h(entry.description) %></p>
  <%- end -%>

  <p2><%= link_to "more...", entry %><p2>
<% end %>

Related Tags: 
<% @related.each do |tag| %>
  <%= link_to h(tag.tags), tag %>
<% end %>

tags_controller.rb:

def show
  @title = Tag.find(params[:id]).name
  @tag = Tag.find(params[:id])
  @entries = Entry.paginate(Entry.find_tagged_with(@tag), 
            :page => params[:page], :per_page => 10, :order => "name")
  @related = Entry.tagged_with(@tag, :on => :tags)
end

每个条目至少有一个标签,这是条目模型所要求的。我希望忽略重复标签并忽略当前标签(列表所属的标签)。我当前的代码显示如下:

相关标签:花园 Gardens ToursGardens

Gardens 是条目的链接,而不是标签 gardens。 ToursGardens 是指向包含这些标签的条目的链接。

我想要的结果是:

相关标签:花园、旅游

每个链接都会链接到它的关联标签。谁能帮我实现这一目标?我尝试使用 div_for,但我认为这是不对的。

【问题讨论】:

    标签: ruby-on-rails ruby uiviewcontroller ruby-on-rails-plugins acts-as-taggable-on


    【解决方案1】:
    @related_entries = Entry.tagged_with(@tag, :on => :tags)
    @related_tags = @related_entries.collect{|x|x.tags}.flatten.uniq
    

    【讨论】:

    • 在我的标签控制器中使用你的代码并且: 在我看来,它几乎可以完美运行。唯一的问题是它显示当前标签和其他标签。如何从@related_tags 中删除@tag?谢谢你的帮助,我很感激。
    • array.delete(element) 将从数组中删除一个元素,因此如果您调用 @related_tags.delete(@tag) 它将从数组中删除标签。祝你好运。
    • 感谢 Apie,你帮了大忙。
    • 如何限制列出的标签数量?
    • @AndrewWei .limit(amount)
    猜你喜欢
    • 2011-04-08
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多