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

すべてのエントリには少なくとも1つのタグがあり、エントリモデルで必要です。重複するタグを無視し、現在のタグ(リストが属するタグ)を無視したいのですが。私の現在のコードはこれを表示します:

関連タグ:Gardens Gardens ToursGardens

Gardensはエントリへのリンクであり、taggardensではありません。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 に答える