2013-05-30 29 views
5

Tôi đang sử dụng đá quý jquery-ray. Trong một đường ray (không-mountable) động cơ tôi có trong ứng dụng/tài sản/Javascripts/my_engine/application.js.erb:Không thể tìm thấy jquery-ui trong động cơ ray (đá quý jquery-ray)

//= require jquery 
//= require jquery_ujs 
//= require jquery-ui.min 

Và tôi nhận được lỗi:

Sprockets::FileNotFound: couldn't find file 'jquery-ui.min'\n (in /home/me/rails/my_engine/app/assets/javascripts/my_engine/application.js.erb 

Cùng thiết lập đã hoạt động tốt trong ứng dụng vùng chứa. Làm thế nào mà nó có thể tìm thấy jquery và jquery_ujs nhưng không phải jquery-ui.min?

Tôi có đá quý jquery-ray trong Gemfile của ứng dụng vùng chứa của tôi, trong gemspec của động cơ và trong Gemfile của động cơ và chạy cài đặt gói.

Trả lời

9

Nếu bạn đang sử dụng phiên bản 3.0.0 hoặc mới hơn của jquery-rails, jQuery UI đã bị xóa khỏi đá quý.

Xem commit 2fdcdb2633cbc6426d412c050200fc31d14b9a3b.

Có vẻ như những người sáng tạo của jquery-rails khuyên bạn nên xem đá quý jquery-ui-rails nếu bạn vẫn cần giao diện người dùng jQuery trong ứng dụng của mình.

+0

Theo mặc định, phiên bản mới của đường ray 3.0+ sẽ bao gồm jquery-ui theo mặc định, đó là lý do tại sao chúng loại bỏ đá quý. – David

+1

Tôi có cần cả đá quý và sau đó // = require jquery và // = yêu cầu jquery.ui.all trong tệp kê khai? – rigyt

+0

Có nó hoạt động bằng cách bao gồm cả đá quý trong gemspec của động cơ, Gemfile và cả hai yêu cầu trong biểu hiện – rigyt

0

Có cú pháp mới để bao gồm jquery ui.

Sử dụng //= require jquery.ui.all để bao gồm tất cả các mô-đun, hoặc bạn có thể xác định chỉ là cốt lõi với //= require jquery.ui.core

thêm thông tin tại jquery-ui-rails gem page

1

Để sử dụng jquery.ui.all bạn cần phải thêm sau đá quý để gemfile của bạn, không phải nó được tách ra từ jquery_rails.

gem "jquery-ui-ray", "~> 4.0.5"

sử dụng sau trong application.js bạn để truy cập

// = đòi hỏi jquery.ui.all

May mắn nhất!

Các vấn đề liên quan