地味にうまくいかない一覧表示
チャットアプリの作成が一通り完成し、見た目を微修正している私です。
下図のようにチャットメンバーを一覧表示したかったのですが、地味になかなかうまく表示されなかったのでメモしておきます。
完成形
とりあえず@usersのみ置く
edit.html.haml
Members:
= @users
こうなる。
.pluckを使ってみた
.pluckを使うとモデルの中の指定したカラムを配列で取得することができる。
なんだかラクで良さそうだ。今回は名前を一覧表示させたいので下記のように使ってみる。
edit.html.haml
Members:
= @users.pluck(:name)
なんとも、惜しい感じ。配列で取れるので、["",]がただただ邪魔だ。なんとかならないものか。
ちなみに、.pluckでは複数のカラムも配列で取れるので覚えておきたい。
edit.html.haml
Members:
= @users.pluck(:id, :name)
.joinを使ってみた
良さそうなものをみつけた。joinメソッドだ。
これを合わせ技として用いれば、今夜はなんだかイケそうな気がする。
joinメソッドは、配列の各要素を文字列に変換し、引数sepを区切り文字として結合した文字列を返します。
要するに、配列の中身が全てずらーっと並んで文字列に変換されるということだ。
間に「,」を挟むという指定で使ってみると。
edit.html.haml
Members:
= @users.pluck(:name).join(",")
完成。