2011-12-20 24 views
6

Tôi mới sử dụng Rails 3.1 và gần đây đã bắt đầu một dự án. Gemfile My chứa jquery-ray như vậy:Thiếu rails.js với jquery-rails

gem 'jquery-rails' 

Và quả thực, tôi đã xác minh rằng đó là hiện nay (phiên bản 1.0.19) trong gemset RVM hiện tại của tôi (sử dụng gem list).

tôi bắt đầu để có được vào các hình thức Ajax được kích hoạt, và từ việc đọc nhiều bài báo và bài đăng từ Googling, dường như tôi phải có một tập tin gọi là rails.js trong thư mục javascripts của tôi (tôi giả sử đây là assets/javascripts/, và tôi đang sử dụng đường dẫn nội dung mặc định).

Câu hỏi của tôi thực sự liên quan đến hai phần:

  1. tôi không thể tìm thấy một tập tin rails.js trong dự án của tôi ngay cả sau khi bundle install, vì vậy tôi đã tải nó từ https://github.com/rails/jquery-ujs và đặt nó trong thư mục assets/javascripts/ tôi. Đây có phải là điều đúng để làm không?

  2. Khi bao gồm rails.js, biểu mẫu Ajax của tôi hiện gửi ba lần. Sau khi điều tra thêm, nó xuất hiện như thể tất cả javascript của tôi (hoặc jquery ???) được gọi là ba lần. Khi tôi nhấp vào liên kết "hủy" cho một đối tượng (loại được tạo khi bạn rails g scaffold something), cửa sổ bật lên xác nhận cũng xuất hiện ba lần. Xóa tệp rails.js cũng sẽ xóa sự cố này.

Bất kỳ trợ giúp hoặc lời khuyên nào sẽ được đánh giá rất cao ... Tôi đã tìm kiếm trên Google và SO hàng giờ và chưa nhận được bất kỳ đâu. Cảm ơn!

Trả lời

14

jquery-rails phục vụ jquery và jquery_ujs từ bên trong đá quý. Bạn không cần sao chép các tệp này vào nội dung/tệp javascripts.

Hãy chắc chắn rằng bạn có hai dòng sau trong javascripts/application.js:

//= require jquery 
//= require jquery_ujs 

Và có javascript_include_tag 'application' trong cách bố trí của bạn.

+1

Bạn là người tiết kiệm cuộc sống. Theo mặc định thay vì 'ứng dụng' có: mặc định! Và vì các tệp jQuery đó không tải trên trình duyệt. – Peymankh

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