さて、私はかなり長い間、Rails アプリで ajax を使用してきました。どういうわけか、私の最初のRails 3.1アプリでは、基本を機能させることができません..
# application.js
//= require jquery
//= require jquery_ujs
# the form
= form_for @signup, :url => '/signup', :remote => true do |f|
= f.text_field :email, :class => 'email', :size => 26
= f.submit 'Notify me'
# the controller
def signup # route.rb has 'match '/signup' => 'controller#signup'
respond_to do |format|
format.js
end
end
# view: signup.js.erb
alert('wtf?');
さて、私が知る限り、このフォームを送信すると、アラート ボックスがトリガーされるはずです。そうではありません。フォームの送信は、テンプレートをレンダリングするコントローラー アクションに渡されます。
Rendered teaser_pages/signup.js.erb (0.1ms)
Completed 200 OK in 8ms (Views: 7.2ms | ActiveRecord: 0.0ms)
jsのみがトリガーされません。
UJS ヘルパーはロードされ、機能しています (と思います)。
link_to 'click me', '#', :confirm => 'confirmation box!'
..期待どおりに確認ボックスがトリガーされます。
何が欠けている可能性がありますか?どの方向を見てもよろしいです。
ありがとう、エルヴィン
アップデート:
そのため、Rails はヘッダーで間違った content-type を証明しているようで、text/html
代わりにtext/javascript
. いくつかのテストの後でも:
render :js => "alert('AHAHAHAHA');", :content_type => 'text/javascript'
コンテンツタイプのヘッダーを引き続きレンダリングしますtext/html
同じバージョンの新しいアプリケーションを実行すると、jquery-rails
動作します。このアプリケーションでは、そうではありません..
どこを見ればいいですか?