Перенаправление AJAX-запроса на правильный URL

#jquery #ruby-on-rails #ruby #ruby-on-rails-3 #autocomplete

#jquery #ruby-on-rails #ruby #ruby-on-rails-3 #автозаполнение

Вопрос:

У меня есть этот ajax-запрос внутри некоторого кода jquery для автозаполнения:

 $.ajax({type:"POST", url:("showable_videos/create.js"), data:{video:{profile:val}}});
  

Автозаполнение действует на поле, которое находится внутри моего видеосюжета. Поэтому, когда он выполняет AJAX-запрос, я получаю эту ошибку:

 Started POST "/videos/showable_videos/create.js" for 127.0.0.1 at Tue Apr 26 00:18:33 -0700 2011

ActionController::RoutingError (No route matches "/videos/showable_videos/create.js"):
  

Rails добавляет /videos/ к URL-адресу, когда я хочу, чтобы он просто был /showable_videos/create.js . Как я могу это исправить?

Ответ №1:

Поместите переднюю косую черту на свой URL: /howable_videos/create.js . Без этого браузер обрабатывает его как относящийся к текущему каталогу.

Ответ №2:

Сделайте его абсолютным URL

  ... url:("/showable_videos/create.js") ...
  

Ответ №3:

поскольку вы не указали абсолютный путь (корневой с «/»), rails интерпретирует это как «из текущего пути» вместо «из корня».

Лучше всего использовать помощники rails path вместо такого жесткого кодирования URL-адресов.