1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【rails】中間テーブルでのタグ機能の表示

Posted at

##はじめに
先日、railsでタグ機能を実装しました
タグ機能に関しては
https://qiita.com/you8/items/b2394104c6f9865f5d46
以上の記事を参考にして作成しました

##問題
さて、先ほど紹介した記事にてDBのアソシエーションやら、コントローラー、モデルの記述をしてみたのですが、肝心なところでビューってどう表示するの?と思いました
タグ機能関連ってコントローラーやらビューやらDB設計はたくさんあるけど表示の部分っていくら検索してもHITしないんだよね

まぁ私が技術不足であると言われたらそこは否めないのですが💦

##解決方法
結論から言うとeachで繰り返された物をさらにeachで繰り返すと上手に表示されます

    - @posts.each do |i|
      .contents
        .contents__image
          = link_to post_path(i) do
            = image_tag i.image.url, class:"Image"
        .contents__title
          = link_to i.title,post_path(i),class:"text"
        .contents__tags
          - i.tags.each do |tag|
            .tag
              = tag.tag_name

これ私が個人的に現在作成中のギブアンドテイク(仮)アプリで実際に使われているコードです
328cfa35feacfaa251f79d47fe75be90.png

これだと正常に表示されています
Sequel proを確認するとpost_idとtag_idで管理していることがわかると思いますスクリーンショット 2021-02-04 20.43.55.png

つまり、@posts(特定のpost_id)の中のtagsをeach分で繰り返さないと野球とスポーツのタグは表示されないのです(表現が難しい💦)

以上が中間テーブルを使用したタグを表示する方法でした
最初はただeachで回せば大丈夫と思っていましたが全てのタグが表示されてタグ機能自体諦めようと思っておりましたが、ふと思った天啓によって思い通りの実装ができました

私のように思い悩んでいる方が解決できたら嬉しいです

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?