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のついた投稿が一覧にある限り見出しが"投稿一覧"とはなりません。(当たり前ですが、、、)
どの様に条件分岐をするのが正しいのでしょうか。わかる方がいらっしゃいましたら、教えていただきたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/10 03:27