Rails 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.
解决方法
解决方法是使用您的路由帮助者从Rails.application.routes.url_helpers,例如
<%= Rails.application.routes.url_helpers.ajax_items_path %>