5

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

これは問題でしょうか?何か案は?

4

1 に答える 1