こんにちは、おーしまです。
今回は、フォームで文章を入力して、それを表示する際に、改行や間隔も入力した通りに表示する方法についてです。
例えば、下のようにフォームに入力しても、、、
普通に表示すると、こうなります。
保存された、テキストの中身を見てみると、、、
"aaa\r\naaa\r\n aaa\r\n"
と、なっていました。
どうやら、\r\n で、改行を示していて、間隔はそのまま間隔となって保存されているようです。
つまり、改行と間隔はそのまま保存されているので、表示するときに問題があるようです。
解決策は2つあります。(私が見つけたのは2個)
<%= safe_join(@car.text.split("\r\n"), tag.br) %>
こちらのコードを使うと、\r\nがあった時に、brタグを入れてくれるので改行できるようになりました。
ただ、全角スペースは間隔を開けてくれるのですが、半角スペースの方は反応してくれません。
<pre><%= @car.text %></pre>
上記のように、preタグで囲ってあげると、改行も全角半角スペースも全て記述通りに表示してくれます。
ただ、文字がちょっと太字で表示されてしまいます。(なんで?笑)
そして、親要素の枠内を超えて、表示されてしまいます。
このはてなブログでも試した結果、ここで入力した半角スペースは反応していないので、前者のやり方で良いと思います。
今回はここまでです。
それでは、また〜