#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-адресов.