🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

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

タグ

特殊な記法により文書に埋め込む形で記述される付加情報をタグと呼びます。文書構造や書式、文字飾りなどを指示したり、画像や他の文書へのリンクを埋め込むことができる。

Ruby on Rails

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

Q&A

解決済

1回答

778閲覧

特定のタグの投稿一覧を表示した時に、ページの見出しを動的に変えたいです。

okabayashi

総合スコア4

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

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

タグ

特殊な記法により文書に埋め込む形で記述される付加情報をタグと呼びます。文書構造や書式、文字飾りなどを指示したり、画像や他の文書へのリンクを埋め込むことができる。

Ruby on Rails

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

0グッド

0クリップ

投稿2021/03/09 13:46

railsで投稿機能(モデル名: report)を実装し、そこにgemのacts-as-taggable-onを使ってタグ機能を追加しました。
![イメージ説明

タグをクリックした際に、"{tag}に関する投稿"と表示される様にはしたのですが、タグを指定せず全ての投稿を表示した場合は、
イメージ説明
とtagの名前がない状態となってしまいます。
この時に"投稿一覧"とだけ載せたいのですが、どの様に条件分岐を記述すれば良いのかがわかりません。

reports_controller.rb

def index @reports = Report.published.order("created_at DESC").page(params[:page]).per(10) @tags = Report.tag_counts_on(:tags).most_used(20) @tags = Report.tag_counts_on(:tags).order('count DESC') if @tag = params[:tag] @reports = Report.tagged_with(params[:tag]).page(params[:page]).per(10) end end

index.html.haml

-if @tags.present? %h1 #{@tag} に関連する投稿 - else %i.fa.fa-newspaper.fa-3x 投稿一覧 - @reports.each do |report| .article %a{:href => "/users/#{report.user.id}"} = image_tag report.user.avatar.url, class: "icon_image" = link_to(report.user.username,"/users/#{report.user.id}", class: "link") が = report.created_at.strftime('%Y/%m/%d %H:%M') に投稿 %br/ = link_to(report.title,"/reports/#{report.id}", class: "link_title") - if user_signed_in? && current_user.id == report.user_id = link_to("編集", "/reports/#{report.id}/edit", class: "link") = link_to("削除", "/reports/#{report.id}", method: "delete", class: "link" , data: { confirm: "本当に削除しますか?" }) %br/ - if report.tags.present? - report.tags.each do |tag| = link_to "#{tag.name}(#{tag.taggings_count})", reports_path(tag: tag.name) - else %p 登録されているタグはありません

if @tags.present?では、tagのついた投稿が一覧にある限り見出しが"投稿一覧"とはなりません。(当たり前ですが、、、)
どの様に条件分岐をするのが正しいのでしょうか。わかる方がいらっしゃいましたら、教えていただきたいです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

-if @tags.present?ではなく -if @tag.present? ですね

投稿2021/03/09 22:54

winterboum

総合スコア23567

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

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

okabayashi

2021/03/10 03:27

ありがとうございます!無事思っていた動作にする事ができました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問