[前][次][番号順一覧][スレッド一覧]

rails:1053

From: "Makoto Satoh" <satoh.makoto@g...>
Date: Thu, 13 Apr 2006 09:13:04 +0900
Subject: [rails:1053] RJSとbefore_filter :set_charset

佐藤です。

Railsアプリを作るときに、config/environments.rbに$KCODE = 'u'を
追加したり、app/controllers/application.rbに

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

を追加するのを初期作業としていましたが、これではRJSテンプレートが
うまく動かないようです。

app/views/foo/bar.rjsが動かないだけで、app/controllers/foo_controller.rbで
render :updateを使うものは動きます。

Rails Recipesを購入しましたが、6. Update Multiple Page Elements With
One Ajax RequestのDiscussionに、RJSテンプレートはContent-Typeが
text/javascriptでないと動かない、after_filterでContent-Typeをセットして
いる場合は注意、とありました。

そこで、before_filter :set_charsetをapp/controllers/application.rbから
削除し、app/controllers/foo_controller.rbで

before_filter :set_charset, :except => [:bar]

としたら、app/views/foo/bar.rjsが動きました。動きましたが、
いまいちすっきりしない感じです。

RailsはWEBrickで動かし、ブラウザはFireFoxです。

個人的には、コントローラ内でrender :updateを使うほうがすっきり
するかなとは思っていますが、*.rjsが使えないのもしゃくなので。

RJSを紹介しているいろんなサイトには、この件が書かれているのを
見たことがありませんが、みなさんContent-Typeをセットするフィルタと
RJSの共存はどうしてますか?

--
佐藤


添付ファイル

[前][次][番号順一覧][スレッド一覧]

-> @  1053 2006-04-13 02:13 [satoh.makoto@g...   ] RJSとbefore_filter :set_charset         
      1054 2006-04-13 07:43 ┗[toykyo@t...         ]