Подтвердить что ты не робот

Рельсы 3.1: Конвейер активов с именованными маршрутами

Rails 3.1.0.rc5

У меня возникли проблемы с тем, чтобы именованные маршруты работали в файле Javascript с поддержкой ERB:

# app/assets/javascripts/items.js.erb
$('#start').click(function() {
  $.ajax({
    url : '<%= ajax_items_path %>',
    success : function(result) {
      $('#result').html(result);
    }
  });
});

Сообщение об ошибке выглядит следующим образом:

Error compiling asset items.js:
NameError: undefined local variable or method `ajax_items_path' for #<#<Class:0x007fbcb49a7630>:0x007fbcb4ee30b8>
  (in myproject/app/assets/javascripts/items.js.erb)

Маршрут ajax_items_path отлично работает, если я использую его непосредственно в представлении.

Похоже, что именованные маршруты недоступны в Asset Pipeline. Если это так, каков обходной путь? Я действительно хочу избегать жестких URL-адресов в моем Javascript.

4b9b3361

Ответ 1

Обходной путь заключается в использовании ваших помощников маршрута от Rails.application.routes.url_helpers, например.

<%= Rails.application.routes.url_helpers.ajax_items_path %>