質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

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

Ruby

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

Q&A

解決済

1回答

710閲覧

ライク数が0の場合でもランキングに表示したい(rails)

yamady

総合スコア176

Ruby on Rails 5

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

Ruby

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

0グッド

1クリップ

投稿2019/04/23 08:42

閲覧いただきまして、ありがとうございます!

Railsでカテゴリごとのアイテム数ランキングを表示したいと考えています。こちらRailsでお手軽ランキング機能の記事を参照しながら、ランキング機能を作ってみたのですが、ライク数が0の場合に表示されず困っています。

ライク数が1以上ある場合には表示されるのですが、ライク数が0の場合はアイテムが表示されません。ranking_itemがここでいうアイテムとなり、カテゴリがカテゴリごとに表示したいということです。

コントローラー

Ruby

1・・・ 2 def show 3 @all_ranks = RankingItem.find(Vote.group(:ranking_item_id).order('count(ranking_item_id) desc').pluck(:ranking_item_id)) 4 @ranking_item = @all_ranks.select{ |ranking_item| ranking_item.category_id == @category.id } 5 end 6・・・

ビュー

Ruby

1<% @ranking_items.each do |item| %> 2 <p><%= "#{item.id} - #{item}位" %></p> 3<% end %>

また、カテゴリごとにおける順位を算出するための方法も見当がつかず・・・。

恐縮ですが、お知恵を拝借させていただければと思います。

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

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

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

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

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

guest

回答1

0

ベストアンサー

@ranking_itemsが空なら条件式をview上で書いて別のものを表示すればいいような気がします(showアクションでは@ranking_item になってますがtypoですかね?)。

カテゴリーごとに分けたいなら、

@ranking_items = @all_ranks.map do |ranking_item| case ranging_item.category_id when ~~~ ・・・ end end

みたいな感じで、カテゴリーごとにまとめてmapでデータを整形すればいいと思います
ただし、上の書き方はあまり良くない(やっつけで書いた)ので、中の処理はメソッド化するなりmodelに退避するなりしたほうがいいです。

…この記事あんまり参考にしないほうがいいと思います。

投稿2019/04/23 09:45

mot93

総合スコア99

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

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

yamady

2019/04/24 07:25

> moto93様 ご丁寧な回答をいただきまして、ありがとうございます! なんとか実装を完了することができました。 Viewの場合わけですね!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問