Cá nhân, tôi nghĩ rằng một lần bạn có phản hồi ajax cần phải cập nhật nhiều vùng không liền kề của trang, đó là thời điểm để giới thiệu một khung công tác JS. Máy chủ tạo javascript (giống như những gì người trợ giúp cho bạn) thuận tiện cho những thứ rất đơn giản, nhưng một khi mọi thứ trở nên phức tạp hơn, bạn sẽ tốt hơn khi chỉ trả về dữ liệu JSON từ đường ray và có con số kết thúc từ các phần của trang sẽ được cập nhật.
Chẳng có lý do gì để bạn phải là người này hay người kia. Bạn có thể tiếp tục sử dụng các trình trợ giúp JS của Rails cho những thứ đơn giản, nhưng trên các trang có ý nghĩa, hãy mang đến một cái gì đó như KnockoutJS, Backbone hoặc Angular. Tôi đã giới thiệu KnockoutJS theo cách này cho một ứng dụng hiện có và nó hoạt động khá tốt. Nó đã giúp nó không phụ thuộc vào một phiên bản cụ thể của jQuery và cũng hỗ trợ các trình duyệt cũ hơn.
Một điều bạn cần quyết định là có thêm khung công tác JS qua rubygem hay chỉ tải xuống và thêm nó vào đường dẫn nội dung của bạn. Cách đầu tiên có thể đơn giản hơn, nhưng nó cũng sẽ buộc bạn vào phiên bản đi kèm với đá quý, điều này có thể để lại cho bạn một vài phiên bản phía sau tại một số điểm. Nếu tôi bắt đầu một ứng dụng mới, tôi có thể không sử dụng bất kỳ trình trợ giúp javascript nào của đường ray và có thể thậm chí không phải là đường dẫn nội dung và sử dụng các công cụ khác như grunt để làm điều đó thay thế. Nó gần như là một 'tách mối quan tâm' với nhiều công việc lên phía trước, so với sự cân bằng 'pin bao gồm'.
Cập nhật nhiều khu vực không liền kề có vẻ giống như một tiêu chí chính. Cũng tự hỏi nếu nó có ý nghĩa để sử dụng Rails cho các mẫu js nặng mà Rails đang phục vụ cho các khu vực rộng lớn như một bảng điều khiển. Nếu khuôn khổ js được kết hợp với bữa ăn mảnh, API phụ trợ có thể hơi phức tạp không? – Phil
Thật thú vị khi không ai đề cập đến "EmberJS' ... – Askar