2010-12-03 4 views
0

HTML応答でJSをレンダリングする方法:私は同じことをするにはどうすればよいRailsの - 部分的にレンダリングされ、私はアヤックス経由で呼び出されたときに、index.jsをレンダリングすること、アクション「インデックス」を持っている

$("#content").html("<%= escape_javascript(render :partial => 'index') %>"); 

htmlのレスポンスで発生しますか? 私が試した:

format.html { render "index.js" } 
をそして、私はすべてのエラーを得ることはありませんが、部分的にはレンダリングされませんので、jsのコードは、実行していないようです。

+0

は、なぜあなたはjavascriptのファイルを返すためにHTML応答をしたいですか?リクエストがHTMLを予期しているので、ブラウザがこれを正しく評価するとは思わない。 – Samo

+0

@Samo:時には(例えばjQueryのように)、html内のスクリプトタグにあるjavascriptが実行されます。 – Swanand

+0

@Swanand:はい、99milesはjavascriptだけを含むと想定されるjavascriptファイルを返しています。 javascriptファイルにスクリプトタグがある場合、それらはhtmlタグなので、ファイルは.jsファイルではありません。 – Samo

答えて

-1

デフォルトのレンダリングは、render :action => :action_nameのショートカットです。ファイルシステムのパスを指定するにはrender :file => "index.js"

0

<script>タグ内でスクリプトをラップしようとしましたか?

あなたindex.html.erb次のようになります。

<script type="text/javascript"> 
    $("#content").html("<%= escape_javascript(render :partial => 'index') %>"); 
</script> 
関連する問題