12

导轨 3.1.0.rc5

我无法让命名路由在启用 ERB 的 Javascript 文件中工作:

# 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如果我直接在视图中使用该路线,则该路线可以正常工作。

看起来命名路由在资产管道中不可用。如果是这种情况,解决方法是什么?我真的想避免在我的 Javascript 中对 URL 进行硬编码。

4

1 回答 1

25

一种解决方法是使用您的路线助手Rails.application.routes.url_helpers,例如

<%= Rails.application.routes.url_helpers.ajax_items_path %>
于 2011-09-13T23:41:53.070 回答