Rail3のAjaxが非常に鬱陶しい件
(∀`*)ゞイヤァ
どハマりしました。
やっと解決というか、逃げきりました_| ̄|○
何がはまったかというと・・・
jQueryを使うと
リモートリンククリック→コントローラー→JavaScript→View
の流れなんですが・・・
$('#some_tag').html("<%= escape_javascript(render 'sub_form') %>");
が、エスケープされたまま出力される。つまりタグ表記のまま出てしまう。
escape_javascriptが非常に怪しいヽ(`Д´)ノプンプン
module ActionView module Helpers module JavaScriptHelper include PrototypeHelper JS_ESCAPE_MAP = { '\\' => '\\\\', '</' => '<\/', "\r\n" => '\n', "\n" => '\n', "\r" => '\n', '"' => '\\"', "'" => "\\'" } # Escape carrier returns and single and double quotes for JavaScript segments. def escape_javascript(javascript) if javascript javascript.gsub(/(\\|<\/|\r\n|[\n\r"'])/) { JS_ESCAPE_MAP[$1] } else '' end end
「
$('#some_tag').html("<%= raw(escape_javascript(render 'sub_form')) %>");
rawったらうまく行きました。
半日潰れたっす。