

現在'acts-as-taggable-on'を使用してリンクつきのタグリストを作成しています。

コントローラー

[code]

      def tag
        if params[:tag_name]
          @articles = Article.tagged_with("#{params[:tag_name]}")
          @all = Article.all
        end
      end
    
[/code]

ビュー

[code]

    <% @all.each do |article|%>
    <% article.tag_list.each do |tag| %>
    <%= link_to tag, tag_path(tag_name: tag), class: "article-body__box__tag" %>
    <% end %>
    <% end %>
    
[/code]

これでタグの一覧を表示させつつ、当該タグのデータに飛ぶリンクを作成しています。

しかし、これでは全データを取得してくるので、重複しているタグを全て表示してしまい、同じタグのついたデータが複数ある場合、その数だけタグを表示してしまいます。

### 試したこと

  * `.uniq`, `.distinct` をコントローラーやモデルにつけてフィルターを試みたがうまくいかなかった

  * 下記のみを使用して一覧を表示したらリンクが作成されなかった
[code]     @articles = Article.tagged_with("#{params[:tag_name]}")

    
[/code]

もしこの状況からコントローラー、ビューの変更で重複を表示させないようにできる方法をご存知の方がおられましたらご教示いただけますと幸いです。


CC BY-SA 4.0
2020-08-30T01:45:08.037
69975
2020-09-02T14:41:50.903
2020-08-30T16:18:28.497
3060
41608
question
ruby-on-rails
タグの一覧表示から重複を削除したい（acts-as-taggable-on）


こちら自己解決できました。

ビューを以下に修正

[code]

       <% @tags.each do |tag| %>
          <%= link_to "#{tag.name}", tag_path(tag_name: tag.name), class: "article-body__box__tag" %>
       <% end %>
    
[/code]

コントローラーに以下を追加

[code]

    @tags = ActsAsTaggableOn::Tag.all
    
[/code]


CC BY-SA 4.0
2020-09-02T14:41:50.903
70088
2020-09-02T14:41:50.903
41608
69975
answer