データベースに保存されるデータは次のようになります。
This is a line
This is another line
How about this line
ビューに出力するとき、それを次のように変換したいと思います。
This is a line\n\nThis is another line\n\nHow about this line
新しい行はなく、実際の\n
文字が印刷されます。どうやってやるの?
データベースに保存されるデータは次のようになります。
This is a line
This is another line
How about this line
ビューに出力するとき、それを次のように変換したいと思います。
This is a line\n\nThis is another line\n\nHow about this line
新しい行はなく、実際の\n
文字が印刷されます。どうやってやるの?
> s = "hi\nthere"
> puts s
hi
there
> puts s.gsub(/\n/, "\\n")
hi\nthere
gsub
改行を特別に変換したいだけなら、私は個人的に使用します。ただし、文字列の内容を一般的に検査する場合は、次のようにします。
str = "This is a line\n\nThis is another line\n\nHow about this line"
puts str.inspect[1..-2]
#=> This is a line\n\nThis is another line\n\nHow about this line
このString#inspect
メソッドは、文字列内のさまざまな「制御」文字をエスケープします。また"
、上で削除した文字列をでラップします。これにより、望ましくない結果が生じる可能性があることに注意してください。たとえば、文字列My name is "Phrogz"
はとして出力されMy name is \"Phrogz\"
ます。
> s = "line 1\n\nline2"
=> "line 1\n\nline2"
> puts s
line 1
line2
> puts s.gsub("\n", "\\n")
line 1\n\nline2
重要なのは、単一の円記号をエスケープすることです。