👀

Rubyで配列内要素を改行コードでjoinする時にハマった話

2022/12/13に公開

背景

users_controller.rb
@names = users.map(&:name)

こんな感じで変数が用意されていて、それをユーザー名を縦に表示しようかなと。

show.html.slim
- @names.each do |name|
  p name

普通にこれでいいんだろうけど、これ以外に何か方法あるかなって時に改行コードで連結してみよーって思いました

やってみたこと

show.html.slim
p style='white-space: pre-wrap;' = @names.join('\n')

これだと、単純に\nという文字列で連結されたっぽい

解決策

show.html.slim
p style='white-space: pre-wrap;' = @names.join("\n")

\nダブルクォーテーションで囲えば解決した!

まとめ

'\n'"\n"とか、'a#{ @hoge }'"a#{ @hoge }"の違いと同じで、joinするときもちゃんと特殊文字扱うときはダブルクォーテーションで囲おうねってことですね!!

今回の場合は特にこの書き方しなくても良いけど、使う場面あるかもだからメモ代わりに記事として残しておきましたー

Discussion