👀
Rubyで配列内要素を改行コードでjoinする時にハマった話
背景
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