我正在使用Rails 3.2.6并尝试集成Rails S3 Fancy 上传器,我认为这可能是对我如何同时使用原型、jquery 和 mootools 的误解,或者只是将其迁移到更新版本的 rails .
在包含资产管道后,我立即将 jQuery 置于无冲突模式(prototype.js 和 mootools.js 库位于 /assets/javascript 文件夹中,以及类似于 /public 文件夹的“fancyuploader”的所有源文件面向 github repo):
<%= javascript_include_tag "application" %>
<script type="text/JavaScript>
jQuery.noConflict();
</script>
但是,我仍然收到很多未定义的错误,我认为这与资产加载到页面上的顺序有关。
Uncaught TypeError: Object [object Window] has no method 'addEvent' script.js:10
Uncaught TypeError: Object [object Window] has no method 'addEvent' script.js:10
Uncaught ReferenceError: Class is not defined FancyUpload2.js:15
Uncaught ReferenceError: Class is not defined FancyUpload3.Attach.js:15
Uncaught ReferenceError: Class is not defined FancyUpload3.S3Uploader.js:27
Uncaught ReferenceError: Fx is not defined Fx.ProgressBar.js:13
Uncaught ReferenceError: Swiff is not defined Swiff.Uploader.js:14
Uncaught ReferenceError: Class is not defined Uploader.js:13
Uncaught TypeError: Cannot read property '0' of undefined prototype.js:6719
看起来 mootools 和原型不适用于创建“FancyUploader”所需的脚本
该项目在Rails 3.0.7中运行良好,资源位于公共文件夹中,haml模板引擎位于源代码中(我使用的是 erb,但我认为这是一个 JS 问题),但是,我也注意到原型没有t 似乎在作者中被引用包括??
= javascript_include_tag( 'mootools.js',
'fancyupload/source/Fx.ProgressBar',
'fancyupload/source/Swiff.Uploader',
'fancyupload/source/FancyUpload3.Attach',
'fancyupload/source/FancyUpload3.S3Uploader' )