Я пытаюсь отчасти следовать этим рельсам, чтобы получить jQuery- загрузчик файлов для работы в рельсах с несущей. У меня есть carrierwave и все остальное, работает отлично, но когда я пытаюсь использовать jquery-fileupload-rails, я получаю ту же ошибку: Uncaught TypeError: Object [object Object] has no method 'fileupload'
. То же самое, когда я пытаюсь запустить $(selector).fileupload()
в консоли.
Gemfile:
source 'http://rubygems.org'
gem 'rails', '3.2.16'
gem 'mysql2'
gem 'jquery-rails'
gem 'rest-client'
gem 'will_paginate'
gem 'simple_form'
gem 'chronic'
gem 'nokogiri'
gem 'carrierwave'
group :assets do
gem 'sass-rails'
gem 'coffee-rails'
gem 'uglifier'
gem 'jquery-fileupload-rails'
end
приложение / активы / javascripts / application.js
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require bootstrap_ujs
//= require jquery-fileupload/basic
//= require_tree .
Также бывает, когда у меня //= require jquery-fileupload
в приведенном выше списке.
Проверяю голову и все скрипты загружаются в правильном порядке:
<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-fileupload/vendor/jquery.ui.widget.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-fileupload/jquery.iframe-transport.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-fileupload/jquery.fileupload.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-fileupload/basic.js?body=1" type="text/javascript"></script>
<script src="/assets/uploads.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
При анализе скриптов в консоли разработчика:
СкриптЭто должен быть пустой файл, потому что все, что он содержит, - это файлы, включаемые конвейером ресурсов.jquery-fileupload/basic.js
- это всего 5 пустых строк ... Что это должно быть?Скрипт
jquery-fileupload/jquery.fileupload.js
полон вещей, но когда я копирую и вставляю весь этот файл в консоль и нажимаю Enter, он выводит:
Object function ( selector, context ) { // The jQuery object is actually just the init constructor 'enhanced' return new jQuery.fn.init( selector, context, rootjQuery ); } has no method 'widget'
Я запускаю установку пакета, удаляю, затем переустанавливаю гем и перезапускаю сервер (несколько раз). После 5 часов неудач я начал все сначала и попробовал снова. Это не удалось.
ОБНОВЛЕНИЕ:
Если я скопирую и вставлю весь jquery-fileupload/vendor/jquery.ui.widget.js
файл в консоль, а затем скопирую и вставлю весь jquery-fileupload/jquery.fileupload.js
в консоль, я не получу ошибку, указанную выше, и метод fileuplaod внезапно станет доступным. Для меня это не имеет смысла, потому что, если он включен в заголовок в этом порядке, он должен работать в этом порядке и быть доступным при вызове $(selector).fileupload()
.