LoginSignup
6
8

More than 5 years have passed since last update.

【Rails】.pluckと.joinでモデルの中身を一覧表示する

Last updated at Posted at 2017-05-27

地味にうまくいかない一覧表示

チャットアプリの作成が一通り完成し、見た目を微修正している私です。
下図のようにチャットメンバーを一覧表示したかったのですが、地味になかなかうまく表示されなかったのでメモしておきます。

完成形

スクリーンショット 2017-05-27 13.47.28.png

とりあえず@usersのみ置く

edit.html.haml
      Members:
      = @users

こうなる。

スクリーンショット 2017-05-27 13.48.37.png

.pluckを使ってみた

.pluckを使うとモデルの中の指定したカラムを配列で取得することができる。
なんだかラクで良さそうだ。今回は名前を一覧表示させたいので下記のように使ってみる。

edit.html.haml
      Members:
      = @users.pluck(:name)

スクリーンショット 2017-05-27 13.55.28.png

なんとも、惜しい感じ。配列で取れるので、["",]がただただ邪魔だ。なんとかならないものか。

ちなみに、.pluckでは複数のカラムも配列で取れるので覚えておきたい。

edit.html.haml
      Members:
      = @users.pluck(:id, :name)

スクリーンショット 2017-05-27 14.06.57.png

.joinを使ってみた

良さそうなものをみつけた。joinメソッドだ。
これを合わせ技として用いれば、今夜はなんだかイケそうな気がする。

joinメソッドは、配列の各要素を文字列に変換し、引数sepを区切り文字として結合した文字列を返します。

要するに、配列の中身が全てずらーっと並んで文字列に変換されるということだ。
間に「,」を挟むという指定で使ってみると。

edit.html.haml
      Members:
      = @users.pluck(:name).join(",")

スクリーンショット 2017-05-27 14.15.22.png

完成。

6
8
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
6
8