自分の手で未来を創るーlav0

自分のために、誰かのために、今ここにないもの、もっと良くしたいもの、何でも自分の手で創っていく。そして、作ったものを公開していきます

Hashタグをつけたい

ユーザーさんが自由にハッシュタグでつながれるように自分のアプリケーションにハッシュタグをつけたいと考え、その実装までのメモ

f:id:kslabo51:20191230211251p:plain

 

一番参考になったのは下記の動画

www.youtube.com

 

動画は英語ですが、ゆっくり聞きつつ一緒にコードを書いていくと無事、アプリケーションにハッシュ機能を付けることができました。

 

作り方のコツは、postモデルとtagモデルというものを作りそれをhas_and_belongs_to_manyでつなぎ関係性を作っているとこでした。

 

ざっと流れを言うとこんな感じでした。

①Tagモデル作成

$ rails g model Tag name:string 

 

マイグレーション

$ rails db:migrate

 

③関係性の作成(マイクロポストは多くのタグを持つ、タグは多くのポストを持つmany to many )

 

テーブルを作成

$ rails g migration CreateMicropostsTags micropost:references tag:references

※出来上がったファイルにindex: true id:falseがないので追加

 

マイグレーション

$ rails db:migrate

 

⑤tagモデルとmicropostモデルをhas_and_belongs_to_manyでつなぐ

これでposts.tagsやtag.postsなどを使えるようになる

 

⑥micropostモデルにポストを作った後の処理をコールバックで加える

 

⑦ルーティングの設定

 

⑧ルーティングに合わせてmicropostsコントローラーにhashtagアクションを追加

 

⑨ビューの追加(micropostディレクトリに追加)

 

⑩ヘルパーの追加

 

⑪ビューの設定でmicropostにpaginationを付与

 

完成はこんな感じ!

f:id:kslabo51:20191230211602p:plain

記事投稿時に#を付けて単語を付けると

 

f:id:kslabo51:20191230211729p:plain

このようにそのハッシュを集めたページに移動できます!

以上です。

 

version   rails 5.1.6