Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 运行rake资产预编译后,在not函数中未定义_Javascript_Ruby On Rails_Ruby_Assets_Precompile - Fatal编程技术网

Javascript 运行rake资产预编译后,在not函数中未定义

Javascript 运行rake资产预编译后,在not函数中未定义,javascript,ruby-on-rails,ruby,assets,precompile,Javascript,Ruby On Rails,Ruby,Assets,Precompile,该应用程序丰富的javascript,包含大量backbonejs类、jquery、bootstrap和许多库 没有预编译,一切都很好。然而,当我在本地或生产服务器上运行rake资产:precompile时,问题就出现了 Uncaught TypeError: undefined is not a function application.js:8 application.js包含所有内容(只是第一眼),所以我不知道哪里会有问题。甚至我都不知道从哪里开始寻找问

该应用程序丰富的javascript,包含大量backbonejs类、jquery、bootstrap和许多库

没有预编译,一切都很好。然而,当我在本地或生产服务器上运行rake资产:precompile时,问题就出现了

Uncaught TypeError: undefined is not a function                  application.js:8
application.js包含所有内容(只是第一眼),所以我不知道哪里会有问题。甚至我都不知道从哪里开始寻找问题。 在application.js中调试输出javasript是不可能的,对吗


有什么想法吗?谢谢各位。

你们可能是把文件按顺序连接起来了。确保以正确的顺序加载所有依赖项。下划线必须在主干线之前加载。

经过几个小时的调试,我发现哪里出了问题

PostsRouter是代码中路由器的名称,当它被预编译时,类的名称被更改为“n”,这是错误的,因为在构造函数中我有下面的代码

this.constructor.toString().match(/function\s*(\w+)/)
所以我得到了错误的类名,但仍然可以。然后我就这样做了:

new App.Collections["" + this.class_name + "Collection"]
这就是问题所在。App.Collections.nCollection不存在,正确名称为App.Collections.PostsCollection

我通过在类定义中添加字符串文字来修复它,而不是从构造函数名称进行解析


祝你今天愉快

秩序看起来没问题。在开发过程中没有问题,application.js中的顺序指定正确。您能链接到application.js第8行中的内容吗?只需要前几行就可以了。