Хорошо, я уже давно использую ajax в своих приложениях rails.Так или иначе, в моем первом приложении на 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 доказывает неправильный тип контента взаголовок, предоставляющий text/html
вместо text/javascript
.Даже после некоторого тестирования:
render :js => "alert('AHAHAHAHA');", :content_type => 'text/javascript'
по-прежнему будет отображать заголовок с типом содержимого text/html
Когда я запускаю новое приложение с той же версией jquery-rails
, оно работает.В этом приложении это не ..
Куда мне смотреть?