私はルビーが初めてで、レールプロジェクトを始めて、奇妙なものを見ています。
page.call が使用されているときに JavaScript 関数を呼び出さないコントローラー アクションがありますが、引数データに国際文字が含まれている場合にのみこれを行います。データを修正すると、期待どおりに機能します。
これが私がルビーでやっていることです:
class MyProblemController < ApplicationController
def view
arg1 = ["This", "is", "fine"]
arg2 = ["Data", "datum", "datums"]
arg3 = ["Good", "Bäd", "Ũgly"]
render :update do|page|
page.call("myJavascriptFunction", arg1, arg2, arg3)
end
end
Web ページで、「myJavascriptFunction」にブレークポイントを設定できますが、呼び出されることはありません。分音記号の付いた文字を削除すると、問題なく動作します。
Ruby n00bとして、これは当惑しています。何が起きてる?これで国際文字をサポートするにはどうすればよいですか?
controller.rb ファイルの先頭にある魔法のコメント「# encoding: UTF-8」を試してみましたが、違いはありません。
ありがとう!
編集: アプリは Rails 2.3.2 を使用しており、変更できません。1.6.0.3のprototype.jsを使用しています