私はレールプロジェクトに取り組んでいます。タグobserve_fieldを使用して、テキスト領域に入力されたテキストを取得し、コントロールで処理し、結果をdivに表示しています(スタックオーバーフローのプレビューに非常に似ています)。特定の特殊文字を入力するまで、すべてが正常に機能します。
- ? => 変数が params オブジェクトで見つからないようにします
- (ポンド) => 無効な認証エラーを引き起こす
- % => div の更新を停止します
- & => & の後のすべてのものは、サーバー上の変数に渡されなくなりました。
これを解決する方法はありますか?
--- コードサンプル ---
これがビューです。(「postbody」はテキストエリアです)
<%= observe_field 'postbody',
:update => 'preview',
:url => {:controller => 'blog', :action => 'textile_to_html'},
:frequency => 0.5,
:with => 'postbody' -%>
これは、呼び出されるコントローラーです。
def textile_to_html
text = params['postbody']
if text == nil then
@textile_to_html = '<br/>never set'
else
r = RedCloth.new text
@textile_to_html = r.to_html
end
render :layout => false
end
これは作成される JavaScript です。
new Form.Element.Observer('postbody', 0.5, function(element, value) {new Ajax.Updater('preview', '/blog/textile_to_html', {asynchronous:true, evalScripts:true, parameters:'postbody=' + value + '&authenticity_token=' + encodeURIComponent('22f7ee12eac9efd418caa0fe76ae9e862025ef97')})})