2010-06-09 20 views
6

Tôi có ứng dụng Ruby on Rails (2.3.5) và máy chủ APE (Ajax Push Engine). Khi các bản ghi được tạo trong ứng dụng Rails, tôi cần phải đẩy bản ghi mới ra trên các kênh hiện hành tới máy chủ APE. Các bản ghi có thể được tạo ra trong ứng dụng đường ray theo đường truyền thông qua hành động tạo của bộ điều khiển, hoặc nó có thể được tạo bởi nhiều máy sự kiện liên tục theo dõi nhiều đầu vào khác nhau và tạo bản ghi khi chúng thấy dữ liệu đáp ứng một tiêu chí nhất định. Có vẻ như với tôi rằng nơi tốt nhất/đúng đắn để đặt mã đẩy dữ liệu ra máy chủ APE (lần lượt đẩy nó ra cho các máy khách) nằm trong móc sau của mô hình (vì không phải tất cả các bản ghi sáng tạo) sẽ chảy qua hành động tạo của bộ điều khiển).Mẫu thiết kế để tích hợp Rails với máy chủ Comet

Thông báo trước là tôi muốn đẩy một đoạn HTML đã định dạng ra máy chủ APE (thay vì biểu diễn JSON của dữ liệu). Lý do tôi muốn làm điều này là 1) Tôi đã có logic để tạo ra bố trí mong muốn trong partials hiện có 2) Tôi không muốn tạo ra một thực hiện javascript của partials (javascript có một đối tượng JSON và tạo ra tất cả các HTML xung quanh nó để trình bày). Điều này sẽ nhanh chóng trở thành một cơn ác mộng bảo trì. Vấn đề với điều này là nó sẽ đòi hỏi partials "rendering" từ bên trong Model (mà im gặp khó khăn khi làm bất cứ điều gì bởi vì họ dường như không có quyền truy cập vào Helpers khi chúng được render theo cách này).

Nhưng dù sao đi nữa - Chỉ cần biết cách nào đúng đắn để tổ chức tất cả những điều này là.

Cảm ơn

Trả lời

8

Sau khi nói chuyện với một số người trong #rails và #ape đây có vẻ là cách tiếp cận tốt nhất cho vấn đề này.

alt text

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