2011-10-11 37 views
13

Tôi đã phát triển ứng dụng Rails 3.1 bao gồm biểu mẫu CRUD Ajax 100% cho người dùng và khách hàng đầu vào. Tôi tạo ra hai mô hình riêng biệt, bộ điều khiển, xem vv Các quan điểm cho mỗi mô hình chứa các tập tin jquery để tạo cập nhật chỉnh sửa và phá hủy. Vấn đề là khi tôi thực hiện bất kỳ thao tác nào thực hiện một thao tác từ xa, nó được gọi hai lần. Tôi có thể xác nhận điều này xảy ra trong giao diện điều khiển trong firebug cũng như đầu ra trong đầu ra WEBrick. Bất cứ ai có thể hỗ trợ theo dõi những gì đã xảy ra ở đây? Điều gì sẽ khiến đường ray xử lý mỗi cuộc gọi hai lần?Rails 3.1 yêu cầu từ xa gửi hai lần

+0

một số mã sẽ giúp hiểu rõ hơn về góc độ ... ví dụ: đăng mã được gọi hai lần – Rafay

+0

Đây là linh cảm - là mã JavaScript của bạn hoặc ['jquery-rails'] (https://github.com/rails/jquery-rails) được đưa vào trang hai lần? Kiểm tra thư mục public/assets nếu bạn đã thực hiện bất kỳ biên dịch trước nào. – Anurag

+0

@Anurag Đó là những gì tôi tin đang xảy ra. Tôi chạy "tài sản bó exec rake: biên dịch trước" trước khi điều này bắt đầu xảy ra. Tôi chỉ cần xóa tệp đó? – ctilley79

Trả lời

13

Nếu bạn đã biên dịch trước các tài sản và chạy trong chế độ phát triển, thì JavaScripts sẽ được bao gồm hai lần trên trang.

Xóa mọi thứ khỏi public/assets nếu đang ở chế độ phát triển.

+0

Tôi đã cố gắng để làm theo giải pháp của bạn (có nghĩa là, để xóa đường dẫn công cộng/tài sản ở tất cả và khởi động lại máy chủ của tôi) nhưng tôi vẫn nhận được vấn đề giải thích trong câu hỏi. Tôi có quên làm gì không? – user12882

+2

Đó là vấn đề về bộ nhớ đệm. đặt lại bộ nhớ cache của trình duyệt của bạn. Đã xảy ra với tôi trước khi tôi tìm ra nó – ctilley79

+2

Bạn có biết rằng có lệnh cào để làm điều đó không? Chỉ cần viết: tài sản cào: dọn dẹp trong thiết bị đầu cuối của bạn. ;) – Kulgar

19

Thêm config.serve_static_assets = false đến development.rb sẽ ngăn tải tệp từ /public/assets.

Thực ra tôi cần phải biên dịch trước tại địa phương vì chế độ thử nghiệm của tôi chỉ sử dụng tài sản tĩnh từ /public/assets - các thử nghiệm đang bắt gặp các vấn đề về tài sản sản xuất có thể xảy ra. Làm sao? Chỉ cần đặt config.assets.compile = falseconfig.serve_static_assets = true trong cấu hình test.rb.

+1

Từ Rails 4 trở đi, 'config.serve_static_assets' không được chấp nhận. Sử dụng 'config.serve_static_files' để thay thế. – Jin

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