2
2

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

今日ポートフォリオにタグ付け機能を追加し、ランキングを作ったので
アウトプットします。

タグ付け機能はformオブジェクトを使いました。
まずtweetコントローラーにこのように記述します。

tweets_controller.rb
def rank
  @tag_ranks = TweetTag.find( TweetTagRelation.group(:tweet_tag_id).order('count(tweet_tag_id)desc').limit(4).pluck(:tweet_tag_id))
end

pluckって何・・・・って思ったので調べてみると
公式では
pluckは、1つのモデルで使用されているテーブルからカラム (1つでも複数でも可) を取得するクエリを送信するのに使用できます。引数としてカラム名のリストを与えると、指定したカラムの値の配列を、対応するデータ型で返します。

だそうです。

pluckの引数にtweet_tag_id(これは中間テーブルのタグのカラム)をとることで中身が取得できます。

次にviewです tweetsの配下にファイルを作ってこのように記述してください

rank.html.erb
<div class="rank-tag-all">
        <% @tag_ranks.each.with_index(1) do |tag,i| %>
          <div class="rank-tag-num">第<%= i %>位 </div> 
          <div class="rank-tag"><%= tag.name%></div>
        <%end%>
</div>

with_index(1)を書いて第二引数をとることで順位が表示されます。

雑談
かなり眠いので簡素的にかきました。。。
もっと早い時間にqiitaを書く予定を立てようと思います...

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?