$(function() {
$("#ll_search").submit(function() {
$.getScript(document.location.pathname + '/index.js.erb');
return false;
});
});
代码段中的第3行会导致以下错误:
ActionController::RoutingError (No route matches [GET] "/labs/index.js.erb").
我正在运行Rails 3.1,这意味着jQuery是默认的。我三重检查了文件“index.js.erb”实际存在。 jQuery似乎无法看到它。
答案 0 :(得分:0)
您可能不希望原始ERB版本(客户端上的任何内容都不知道如何处理它)并且脚本可能在Rails 3.1中的/assets
中,因此请尝试以下方法之一:
$.getScript('/labs/index.js');
$.getScript('/assets/labs/index.js');
$.getScript('/assets/index.js');
我猜错了一些事情。
答案 1 :(得分:0)
请记住,document.location.pathname
将为您提供根级别路径,这将在Rails中(默认情况下)将您带到公共目录(除非存在相应的路由)。如果您需要在请求时呈现此js文件(不建议在性能方面),请创建一个呈现js的端点,并使用正确的MIME类型适当地返回它。