2011-12-28 28 views
6

Tôi chỉ nhận thấy this error và tôi cần nâng cấp dự án Rails 3.1 của mình (tôi không sử dụng đường dẫn nội dung) cho jQuery 1.7+.Làm thế nào tôi có thể cập nhật lên jQuery 1.7+ bằng Rails 3?

Tôi thấy rằng đã có các thư viện jQuery trong thư mục javascripts của tôi (public/javascripts). Ngắn sao chép thư viện jQuery mới vào đó theo cách thủ công, có một chú thích để thay thế tệp JavaScript bằng Ruby không?

+1

Có gì sai với việc sao chép một phiên bản mới của thư viện jQuery thành công thư mục '/ javascripts' của bạn? Đó là những gì tôi làm khi tôi muốn nâng cấp một trong những javascript của tôi trong một dự án đường ray. – Batkins

+0

Tôi biết bên cạnh không có gì về Rails, nhưng nếu có thể, hãy thử và tìm ra cách để kết nối bên ngoài với tệp [jquery-latest.js] của jQuery (http://code.jquery.com/jquery-latest.js). Có chứa bản sửa đổi mới nhất của jQuery. –

Trả lời

13

Trong Rails 3.1, jQuery được quản lý bởi jquery-rails gem. Bạn có thể nâng cấp phiên bản jQuery của mình bằng cách sử dụng phiên bản mới hơn của jquery-rails. Nó rất dễ làm. Đây là một lời giải thích đầy đủ.

Xem phiên bản hiện tại của bạn bằng cách chạy gem list từ thư mục gốc của dự án. Bạn có thể sẽ thấy một cái gì đó như thế này:

... 
i18n (0.6.0) 
jquery-rails (1.0.16, 1.0.14, 1.0.13) 
json (1.6.1) 
... 

Đá quý jquery-rails sử dụng jQuery 1.7+ trong phiên bản 1.0.17+. Theo văn bản này, phiên bản mới nhất của đá quý cho Rails 3.1 là 1.0.19, sử dụng jQuery 1.7.1. Nghe có vẻ như những gì bạn muốn!

Vì vậy, bạn không cần phải thả bất kỳ thứ gì trong thư mục /javascripts của mình. Thay vào đó, hãy chỉ định phiên bản mới hơn của đá quý trong số Gemfile của bạn. Đây là những gì tôi có trong tôi:

gem "jquery-rails", "~>1.0.19" 

Các hài hước ~> nhân vật kể bundler để tìm một phiên bản của đá quý mà ít nhất là những gì bạn chỉ định (1.0.19 ở đây), và bất kỳ phiên bản nhỏ sau, nhưng không phải là bản phát hành chính tiếp theo (2.0.0 cho đá quý này, chỉ hỗ trợ Rails 3.2+).

Sau đó, từ gốc của dự án, hãy chạy bundle và phiên bản được chỉ định sẽ được thiết lập cho bạn. Khởi động lại ứng dụng Rails của bạn, tải lại trang và bạn có thể xác minh rằng bạn đang xử lý jQuery 1.7.1.

Hãy cho tôi biết cách hoạt động!

Chúc mừng.

+2

'bundle show jquery-rails' là một cách nhanh hơn để kiểm tra phiên bản của gem bạn đã cài đặt. – blushrt

+0

Điều này hoàn toàn không hiệu quả với tôi. Tôi đã chạy 2.0.1 và thay đổi nó thành 2.1.0, gỡ cài đặt viên đá quý cũ và cài đặt cái mới. jQuery vẫn đang được tải ở mức 1,8 khi nó phải là 1,10. – Aristata

0

tôi cập nhật phiên bản jquery-ray đá quý của tôi lên phiên bản 3.1.2 (loại: bundle show jquery-rails để xem phiên bản jquery-ray hiện tại của bạn, hoặc gem list để xem tất cả các đá quý)

Tuy nhiên trang web của tôi vẫn còn sử dụng lỗi thời phiên bản jquery 1.3. Để kiểm tra phiên bản bạn đang sử dụng, hãy truy cập tệp jquery.js nằm trong thư mục asset/javascripts của bạn, phiên bản sẽ được chỉ định ở đó. Tất nhiên để sử dụng jquery bạn cũng phải bao gồm jquery.js vào tài sản của bạn/Javascripts/application.js nộp là tốt, bằng cách thêm dòng sau:

//= require jquery 

Và trong trường hợp bạn cũng có khác thư viện JS như nguyên mẫu ví dụ, bạn chắc chắn sẽ muốn kiểm tra liên kết này cũng như: jQuery- Avoiding Conflicts with Other Libraries

Dù sao lại đến mức, theo khuyến cáo zzg của trên, tôi mở liên kết mà ông cung cấp: Latest Jquery và nghĩa đen sao chép và dán nội dung của trang web đó vào tệp jquery.js của tôi. Sau khi tôi khởi động lại máy chủ và làm mới trang web của mình, jquery của tôi đang sử dụng phiên bản mới nhất. JQuery của tôi đã được làm việc cục bộ trên env dev của tôi, nhưng đã không làm việc trên sản xuất ngay lập tức sau khi (cố gắng tìm ra điều đó ngay bây giờ).

Cuối cùng, một điều nữa có thể hữu ích để biết là bạn luôn có thể xem phiên bản ứng dụng đường ray của bạn đang sử dụng (trong env địa phương của bạn) bằng cách nhấp chuột phải vào trang web ứng dụng đường ray và chọn "Xem trang Source", bạn nên tìm một liên kết như thế này:

<script data-turbolinks-track="false" src="/assets/jquery.js?body=1"></script>

cách nhấp vào nó sẽ hiển thị nội dung của file jquery.js của bạn mà quy định các phiên bản (điều này sẽ không làm việc trên sản xuất kể từ khi đường ống dẫn tài sản nén tất cả tệp javascript vào một tệp, cụ thể là app.js)

1

Trong Rails 4 Bạn c một jquery Cập nhật với sau cách

trong application.js manifest

//= require jquery2 //for jquery 2 

//= require jquery3 //for jquery 3 
Các vấn đề liên quan