2

データベースに保存されるデータは次のようになります。

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文字が印刷されます。どうやってやるの?

4

3 に答える 3

7
> s = "hi\nthere"
> puts s
hi
there
> puts s.gsub(/\n/, "\\n")
hi\nthere
于 2013-01-23T17:56:09.287 に答える
2

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\"ます。

于 2013-01-23T19:05:54.997 に答える
1
> s = "line 1\n\nline2"
 => "line 1\n\nline2"  

> puts s
line 1

line2

> puts s.gsub("\n", "\\n")
line 1\n\nline2

重要なのは、単一の円記号をエスケープすることです。

于 2013-01-23T17:56:05.947 に答える