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

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

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

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

Ruby on Rails 6

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

Q&A

解決済

2回答

642閲覧

railsで特定のカラムを数字の高い順に表示させたい

kdh

総合スコア26

Ruby

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

Ruby on Rails 6

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

0グッド

0クリップ

投稿2020/10/22 17:25

以下の記述で名前を表示することができています。player_levelが高い順にその人の名前を表示する方法はどうするのでしょうか?イメージではランキングのような感じです。

イメージ説明

コントローラー

@users = User.pluck(:name)

erb

1<% @users.each do |user| %> 2 <div class="user"><%= user %></div> 3 <% end %>

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

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

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

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

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

guest

回答2

0

ベストアンサー

カラムの値でソートかけて:nameの配列で取り出せばよさそう。

rb

1User.order(player_level: :desc).pluck(:name)

投稿2020/10/23 01:00

Mugheart

総合スコア2349

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

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

kdh

2020/10/23 11:10

順番に並びました。上位3人だけ表示するにはどうしたら良いでしょうか? 末尾に.limit(3)をつけてみたのですがNoMethodErrorになってしまいました。
no1knows

2020/10/23 11:20

上位3人だけなのか、上位3レベルに該当する人なのかをはっきりして質問したほうが良いかと思います。
Mugheart

2020/10/23 11:22 編集

pluckの戻り値でArrayに変化してしまうので、その前に実行します。 User.order(player_level: :desc).limit(3).pluck(:name)
kdh

2020/10/23 11:47

pluckの戻り値がArrayに変化するのを初めて知りました。無事表示することができました!
guest

0

色々方法はありますが、例えば
nameだけ取るのであれば

User.all.order('count(player_level) desc').limit(3).pluck(:name)

で取得できるかと思います。
activerecord orderとかactiverecord ランキングで検索したら 参考になる記事が多数あるので見てみてください

投稿2020/10/22 22:12

編集2020/10/22 22:14
big2017

総合スコア39

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

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

no1knows

2020/10/23 00:18

ちょっとわからないので教えてほしいのですが、countって何をするためのものですか?
Mugheart

2020/10/23 00:58

個数を数えるものです。なのでちょっと今回の用途とは違いそうです。
kdh

2020/10/23 11:12

今回の記述を試しましたが名前が一人だけしか表示されませんでした。。。 検索のワードを教えていただきありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問