在标签#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
花园是入口的一个环节,而不是标签花园。 ToursGardens是包含这些标签的条目的链接。
我想要的结果是:
相关标签:花园,旅游
每个链接都会链接到它的相关标签。谁能帮我实现这个目标?我尝试使用div_for,但我认为这不对。
答案 0 :(得分:6)
@related_entries = Entry.tagged_with(@tag, :on => :tags)
@related_tags = @related_entries.collect{|x|x.tags}.flatten.uniq