RJSの落とし穴。

Railsで日本語扱う(と言うか、UTF-8で動かす)場合、常套手段としてcontroller/application.rbで

before_filter :set_chaset

def set_charset
  @headers["Content-Type"] = "text/html; charset=utf-8" 
end

とやってContent-Typeにcharsetを仕込みますけど、これやってるときにRJSを使うのにはちょっと注意が必要。
RJSでJavaScriptソースを返すアクション中で、

@headers["Content-Type"] = "text/javascript; charset=utf-8"

とやってやらないとJSは動作しないし、JavaScriptコンソールにもエラーが出なくて頭上を疑問符が飛び交う羽目に。
要するに、text/htmlで返しちゃったからJSだと思われてないのが原因。RJSを使うアクションがたくさんあれば、before_filterでやるほうが賢い。


それとも最近はもっと賢い手があるのかな?