Hashタグをつけたい
ユーザーさんが自由にハッシュタグでつながれるように自分のアプリケーションにハッシュタグをつけたいと考え、その実装までのメモ
一番参考になったのは下記の動画
動画は英語ですが、ゆっくり聞きつつ一緒にコードを書いていくと無事、アプリケーションにハッシュ機能を付けることができました。
作り方のコツは、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を付与
完成はこんな感じ!
記事投稿時に#を付けて単語を付けると
このようにそのハッシュを集めたページに移動できます!
以上です。
version rails 5.1.6