Я работаю над настройкой действия AJAX в rails 3 с помощью следующего кода. Кажется, что AJAX-часть кода работает, но не запрашивает правильный файл, и мой response_to обслуживает его в обычном HTML.
Маршрутная информация:
resources :zones do
resources :records
end
Контроллер:
def new
@zone = Zone.new
respond_to do |format|
format.html
format.js
end
end
Ссылка в представлении (хамл):
= link_to 'Add a zone →', new_zone_path, :remote=>true
Сгенерированный HTML из link_to (также обратите внимание на неудачный рендеринг html-сущности ... но это еще одна проблема):
<a href="/zones/new" data-remote="true">Add a zone &#8594;</a>
Для ударов, список каталогов вида / зоны. Я не уверен, что делаю это совершенно правильно,
поэтому у меня есть и new.js.rjs, и new.rjs. Они оба имеют одинаковое содержание, но никогда не попадают в действие.
| `~zones/
| |-_form.html.haml
| |-_record.html.haml
| |-edit.html.haml
| |-index.html.haml
| |-new.html.haml
| |-new.js.rjs
| |-new.rjs
| `-show.html.haml
Наконец, журнал сервера, когда я нажимаю на ссылку:
Started GET "/zones/new" for 127.0.0.1 at Wed Dec 29 00:04:03 -0700 2010
Processing by ZonesController#new as */*
User Load (0.4ms) SELECT "users".* FROM "users" WHERE ("users"."id" = 1) LIMIT 1
Rendered zones/_form.html.haml (22.1ms)
Rendered zones/new.html.haml within layouts/application (34.9ms)
Completed 200 OK in 80ms (Views: 42.0ms | ActiveRecord: 0.4ms)
Как видите, это рендеринг файла .html для запроса. Теперь для тестирования я попал на страницу http://localhost:3000/zones/new.js напрямую. И это обслуживает new.js.rjs. Также работает удаленный вызов javascript. Firebug показывает запрос и ответ, но запрашивает не ту страницу.
Также для тестирования я сделал это:
= link_to "Add a zone", '/zones/new.js', :remote=>true
Что прекрасно работает (rjs загружается, выполняется и работает правильно) для javascript, но не имеет приятного переключения при отказе для систем с отключенным javascript.
Для чего стоит я использую jquery.
Мне кажется, что я что-то упускаю в маршрутизации или синтаксисе ссылок, но все примеры, которые я могу найти в Интернете и в документации, похоже, показывают, что именно я делаю. В чем подвох?
Спасибо.