そこで、to_json を使用して、Ruby on Rails のオブジェクトを JSON 形式にシリアライズしています。生成される出力は次のとおりです。
'{"description":"---\n- Nulla adipisci quia consequuntur nam ab et. Eius enim ad aut. Asperiores recusandae\n labore exercitationem.\n quos provident.\n","id":295,"name":"Animi enim dolorem soluta eligendi inventore quia distinctio magni.","privacy":0,"updated_at":"2012-11-18T22:24:17Z","user_id":1}'
これは、JSON.parse によって解析され、クライアント側の JavaScript でオブジェクトを逆シリアル化する必要があります。現時点では\n
、「説明」の値に改行文字が含まれているため、これは失敗しています。およびその他の順列を使用して文字を適切にエンコードしようとしましたgsub("\n","\\n")
が、改行 (および改行のみ) に正しく一致する文字列または正規表現が見つからないようです。/\n/
、'\n'
、"\n"
、"\\n"
(これは何らかの理由で文字列のどこにでも一致します) などを試しまし/\\n/
たが、何も見つかりませんでした。私が見逃しているアイデアはありますか?
更新:これがコードです(javascriptですが、ルビーが埋め込まれています)、javascriptオブジェクトを設定するために使用しようとしています(ERBビューにあるため、山括弧です):
var object = JSON.parse('<%= raw @object.to_json %>');
to_json
私のオブジェクトコードではオーバーライドされていません。標準のレールメソッドだけです。