Activerecordを使用してシナトラ アプリにwysihml5を実装しようとしています。
リッチ テキスト エディターはうまく機能し、フォームを送信すると、適切な html がコントローラーに投稿されます。
pry:> request.params
=> {"title" => "title text",
"content" => "<b>bold text</b><br><i>italic text</i>",
"_wysihtml5_mode" => 1
}
次に、request.params からハッシュ エントリ "_wysihtml5_mode" を削除して db エントリを作成し、コンテンツを json に変換します。
pry:> request.params.delete("_wysihtml5_mode")
=> 1
pry:> request.params["content"].to_json
=> "\"\\u003Cb\\u003Ebold text\\u003C/b\\u003E...
pry:> class.create(request.params)
問題は、最初の値を元に戻せないことです:
pry:> class.last.content
=> "\"\\u003Cb\\u003Ebold text\\u003C/b\\u003E...
pry:> JSON.parse(class.last.content)
JSON::ParseError: 743: unexpected token at '"\\u003Cb\\u003Ebold text\\u003C/b\\u003E...
この Unicode 文字を utf-8 スタイルに戻すにはどうすればよいでしょうか (文字テーブルに慣れていないため、間違っている可能性があります)。json への変換中に、先頭に " が追加されているようです。
"<b>bold => "\"\\u003Cb\\u003Ebold
これは問題でしょうか?何か案は?