【发布时间】:2011-10-24 21:00:16
【问题描述】:
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 进行硬编码。
【问题讨论】:
-
一种解决方法是在 HTML 中返回 URL,例如作为#start 上的数据属性,然后从那里提取它。
-
我在 Rails 3.1.0 中遇到了完全相同的问题您找到任何解决方案了吗?谢谢
-
Thibault:是的,tristanm 的回答对我有用。
标签: ruby-on-rails ruby-on-rails-3 asset-pipeline