0
0

More than 3 years have passed since last update.

カラムの特定の値がいくつあるか(countメソッド)

Posted at

countメソッドを使ってカラム値の合計を求めるのに苦労したのでメモ
ruby 2.6.3
rails 5.1.6

特定の文字数や要素をカウントしたい場合

主の場合、Userモデル(親)、Wordモデル(子)という状況でUserモデルのViewでWordモデルのcompleteカラムのtrueという値がいくつあるのかを表示したいか模索していました。

結論

特定の文字数や要素をカウントしたい場合はcountメソッドを使うとよい。
lengthやsizeといったメソッドもあるが、そちらはまた別の機会に。

モデルの状況

User.rb

id name email
1 saber ~~
2 lancer ~~
3 archer ~~
4 caster ~~

Word.rb

id english japanese complete user_id
1 saber セイバー true 1
2 lancer ランサー true 1
3 archer アーチャー false 1
4 caster キャスター false 1

このモデル関係の中でWordモデルのcompleteカラムのtrue/falseの数をUserモデルのビューに出力したいとき

users/show.html.erb
@user = User.find(params[:id]) #userコントローラーで定義
<%= @user.words.count{|i| i.complete? === true}  %>
=>2
<%= @user.words.count{|i| i.complete? === false}  %>
=>2

他にもwhereとかcountで他の方法が出てきたので試行錯誤してみましたが求めていた数値は出てこず。
この方法に出会うまで数時間を要しました。。。。
最近DBから特定の値を引っ張り出す?ことが多くわからないところが多いですが、その都度調べ上げ知識をつける=>アウトプットのサイクルで勉強にもなるのでいいかなーと思ってみたりしています。

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