koheitakahashiのブログ

2020.07.01にプログラマーとして生を受けた私が学んだことや、日常について徒然に書いていきます。

配列をerbで改行して表示するには?

はじめに

Sinatraでメモアプリを作成していたところ、Rubyファイルで作成した配列をビュー(erbファイル)に渡して、表示したところ、改行されずに表示されてしまいました。

f:id:NMP300:20190930183611p:plain
配列が改行されない

erb側でputsしても表示されなくなるだけで、どのようにしたら解決するのかしばらく悩んでいたので、解決方法をまとめます💪

解決方法

<br>で改行をすればOK😆

以下がサンプルのコードになります。

get '/' do
  @array = ["深沢諭吉", "樋口二葉", "野口秀吉"]
  @list = @array.join("<br>")
  erb :example
end
<!DOCTYPE html>
<html>
  <head>
    <meta charset='utf-8'>
    <title>偉人</title>
  </head>
  <body>
    <h1>偉人達</h1>
    <p>
    <%= @list %>
    </p>
    <footer>@NMP</footer>
  </body>
</html>

f:id:NMP300:20190930183639p:plain
配列が改行された

解説

配列を改行して表示しようとした時、最初はputsなどを試してみたところ、表示されないという現象が起きました。

写真

f:id:NMP300:20190930183701p:plain
`puts`では消えてしまう

そこで、今度は"/n"をつければ良いと考えたのですが、それでも改行はされませんでした。

get '/' do
  @array = ["深沢諭吉", "樋口二葉", "野口秀吉"]
  @list = @array.join("\n")
  erb :example
end

f:id:NMP300:20190930183742p:plain
配列が改行されない

調べたところ、HTMLの改行タグである<br>をつければ良いとのこと。

そして、早速つけてみたところ、上記のように成功しました😆

最後に

まだまだ、Webアプリケーション作成については勉強しなければいけないことが多いですが、一つ一つ学んだことをアウトプットしていきたいです💪

参考文献

[Rails]ビューで配列を改行するなら脆弱なjoinではなくsafe_joinにしよう