私はrails 3.1.3を使用しています。私は、手順に従ってjs.erbファイルを使用したい:
1.ポストコントローラにテストアクションを作成します。Rails 3.1:サーバーは常にJSではなくHTMLとして処理します
def test
respond_to do |format|
format.js
end
end
2 routes.rbをして、このアクションを定義します。
resource :posts do
collection do
get 'test'
end
end
3.作成します。 test.js.erbファイル:index.html.erbファイルで
$('#abc').append('<h1>something</h1>');
4:
<div id='abc'></div>
<%= link_to "Test", test_posts_path, :remote => true %>
しかし、私はそれがURL http://localhost:3000/posts/test
で空白のページに移動して、ログサーバがあり、実行して、リンクをテストするためにクリックしてください:サーバがtest.js.erbにJS、jQueryのよう処理しない、だから、
Started GET "/posts/test" for 127.0.0.1 at Sat Feb 11 18:04:36 +0700 2012
Processing by PostsController#test as HTML
ファイルは実行されません。あなたが私のために説明することができますなぜサーバープロセスは、HTMLのようなコントローラで私はrespond_to format.jsを定義している?
プロジェクトのすべての応答がformat.htmlに定義されているため、テストアクションがJSに応答できないとしますか?もしそうなら、私はそれを変更できますか?そして、それが動作
//= require jquery
//= require jquery_ujs
:資産/ JavaScriptのでは/ application.jsを使用する行が必要:
は
が起こるか見て
<%= link_to "Test", test_posts_path(:format => :js), :remote => true %>
を試してみてください、あなた 'index.html.erb'によってロード' jquery'と 'jqueryの-ujs'ていますか? – Jef