Как использовать маршруты в скриптах .js.coffee - PullRequest
1 голос
/ 04 октября 2011

У меня есть этот код:

$('#my_form .submit').click( ->
  $.ajax( ->
  type: "post",
  url: "????",
  data: $("#myform").serialize(),
  #success: this.saveUserResponse
)

POST   /schedule_details(.:format)                   {:action=>"create", :controller=>"schedule_details"}

Я думаю, это 2 вопроса, или я ищу правильный способ сделать это.Как я могу использовать shedule_details_create_path и как я могу использовать это в моем JavaScript?Или есть лучший способ сделать это?

Спасибо за любую помощь.

Ответы [ 3 ]

4 голосов
/ 04 октября 2011

Как насчет ненавязчиво AJAXify формы вместо подписки на обработчик нажатия кнопки отправки:

$('#my_form').submit(function() {
    $.ajax({
        type: this.method,
        url: this.action,
        data: $(this).serialize(),
        success: this.saveUserResponse
    });
    return false;
});

Таким образом, вы можете сгенерировать форму с использованием маршрутизации и правильно установить ее атрибут действия в разметке. Тогда ваш javascript полностью независим.

1 голос
/ 02 марта 2016

js-route gem отлично работает для меня.

Gemfile:

gem "js-routes"

Требуется файл js routs в application.js.

//= require js-routes

Очистите кэш конвейера ресурсов перед первой попыткой js-маршрутов и перезапустите сервер rails:

rake tmp:cache:clear
rails s

Наконец, в вашем файле coffeescript:

Routes.users_path()
# => "/users"
Routes.user_path 1
# => "/users/1"
Routes.user_path 1, format: 'json'
# => "/users/1.json"
Routes.user_path 1, anchor: 'profile'
# => "/users/1#profile"
Routes.new_user_project_path 1, format: 'json'
# => "/users/1/projects/new.json"

Для расширенной настройки, просто проверьте js-route github repo .

0 голосов
/ 04 октября 2011

в вашем route.rb вы можете написать что-то вроде этого:

match "/schedule_details/create" => "schedule_details#create"

и поместить / schedule_details / create в url: param вашего вызова ajax.

Надеюсь, я понял вашнеобходимо!

...