質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

1797閲覧

【Rails】acts_as_taggableを用いたタグリンクの作成

yuta_tokyo

総合スコア35

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2017/03/01 09:24

はじめましてRailsの勉強を始めて2ヶ月の学生です。

現在掲示板を作っており、acts_as_taggableを用いてtag機能を実装しようとしています。

タグをテキストで表示させることはできたのですが、リンク付きテキストとして表示することがいまだにできておりません。
各tags#showをリンク先としてpathしたいです

ご教授のほどよろしくお願いします。

post.rb

def save_tags array = self.check_taggable_word(self.title) self.tag_list.add(array, parse: true) end def tag_lists tag_lists = self.tag_list end def check_taggable_word(text) ary = Array.new nm = Natto::MeCab.new nm.parse(text) do |n| ary<<n.surface end tags = ActsAsTaggableOn::Tag.pluck(:name) return ary & tags end

show.html.erb (post)

Tag: <% @post.save_tags %> <%= @post.tag_list %>

posts_controller.rb

def show @post = Post.find(params[:id]) @category = @post.category end

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

どうもyuta_tokyoさん、お久しぶりです。

とりあえず
tags_controller.rb

tags/show.html.erb
を用意します。
そしてroutes.rbに
get 'tags/:name' => 'tags#show'
とhow.html.erb (tag)へのルートを追記します。

ruby

1post/show.html.erb 2 Tag: 3 <% @post.save_tags %> 4 <% @post.tag_list.each do |tag| %> 5 <%= link_to(tag,"/tags/#{tag}")%> 6 <% end %>

ruby

1 tags_controller.rb 2class TagsController < ApplicationController 3def show 4@tag=ActsAsTaggableOn::Tag.find_by(name: params[:name]) 5end

ruby

1routes.rb 2get 'tags/:name' => 'tags#show'

ruby

1tags/show.html.erb 2@tagを使ってyuta_tokyoさんがやりたいことを書いてください 3

あとは
tags/show.html.erbにやりたいことを書いてください

投稿2017/03/03 05:01

編集2017/03/04 06:58
moke

総合スコア2241

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuta_tokyo

2017/03/04 06:49

moke様 いつもありがとうございます!!実行してみたところ、post/show.html.erbにテキストで <a href="/tags/タグ">タグ</a><br/><a href="/tags/タグ2">タグ2</a> と表示されてしまいました....
yuta_tokyo

2017/03/04 06:55

moke様 .html_safeでエスケープすることで解決しました!!ご解答ありがとうございました!!!
moke

2017/03/04 06:59 編集

それでもよかったです すみません 一応回答は修正しときました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問