1

在 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 是条目的链接,而不是标签 gardens。ToursGardens 是指向包含这些标签的条目的链接。

我想要的结果是:

相关标签:花园,旅游

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

4

1 回答 1

6
@related_entries = Entry.tagged_with(@tag, :on => :tags)
@related_tags = @related_entries.collect{|x|x.tags}.flatten.uniq
于 2010-03-18T06:18:44.090 回答