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 に答える