Tôi có một khách hàng cần cùng một CMS tùy chỉnh được phát triển cho khoảng 5 ứng dụng. Tất cả các ứng dụng sẽ có giao diện "tương tự" nhưng khác nhau và tôi thực sự muốn có 1 ứng dụng đường ray xử lý việc này và chỉ cần sửa đổi bố cục/lượt xem nếu cần. Có một gem/plugin hoặc tiền lệ cho điều này?Muốn sử dụng 1 ứng dụng đường ray cho nhiều trang web/tên miền
Trả lời
Đề xuất của Doug sẽ hoạt động nếu sự khác biệt giữa các trang web hoàn toàn là kiểu và nội dung tĩnh - ví dụ: nếu bạn về cơ bản chỉ là "bôi da". Nhưng tôi sẽ thận trọng sau cách tiếp cận đó nếu sự khác biệt sẽ liên quan nhiều hơn thế. Bạn có thể dễ dàng kết thúc với một cơn ác mộng bảo trì, với tất cả các logic kinh doanh của bạn được bao quanh bởi các báo cáo trường hợp và rất nhiều trường hợp đặc biệt mã lây lan thông qua ứng dụng của bạn. Và bạn thực sự cảm thấy nỗi đau nếu bạn muốn tách các trang web này thành các máy chủ khác nhau hoặc thực hiện các thay đổi quan trọng về chức năng cho một số trang web nhưng không thực hiện các thay đổi khác.
Nếu bạn dự đoán có sự khác biệt đáng kể nào giữa các trang web, bạn có thể muốn xem xét phát triển chúng dưới dạng các dự án Rails riêng biệt với các thành phần được chia sẻ. Đặt mã mà họ sẽ chia sẻ thành đá quý hoặc plugin và dự trữ các dự án riêng biệt cho các thuộc tính mà chúng không chia sẻ. Đối với một sự gia tăng nhỏ trong chi phí lên phía trước, bạn sẽ mua cho mình một sự linh hoạt hơn rất nhiều trên đường.
Bạn có thể bắt đầu bằng DHH's Account Location plugin làm khởi đầu, nhưng sửa đổi nó để sử dụng tên miền cấp cao nhất (TLD) thay vì tên miền phụ. Đó là một thư viện rất đơn giản, nhưng nó hoàn thành công việc. Chỉ cần đảm bảo phạm vi mọi tìm thấy trong ứng dụng của bạn theo số Account
được liên kết với tên miền.
Tôi đã xây dựng một cái gì đó đặc biệt cho mục đích này một vài năm trước đây. Tôi đã không chạm vào nó trong một thời gian, nhưng có một số hoạt động mạng trên github. Rails Multisite Plugin
Phản hồi của Paulbonner phản ánh khá nhiều những gì tôi đang nghĩ: nếu các trang web phân kỳ theo chức năng theo thời gian - sẽ là một cơn ác mộng để hỗ trợ sau này.
Vì vậy, tôi có thể sẽ tạo ra một số ứng dụng Rails riêng biệt, nhưng tôi sẽ sử dụng một cái gì đó như Rails Cells để phát triển chức năng, đó là phổ biến cho tất cả các trang web. Sau đó, tôi sẽ chia sẻ tất cả các ô của mình trên tất cả các ứng dụng bằng cách sử dụng svn: externals hoặc tương đương từ Git.
- 1. Giám sát nhiều ứng dụng đường ray
- 2. Mất phiên trong đường ray 2.3.2 ứng dụng sử dụng tên miền phụ
- 3. Định tuyến đường ray để xử lý nhiều tên miền trên một ứng dụng đơn
- 4. Nhiều tên miền được hỗ trợ bởi một ứng dụng đường ray
- 5. tạo Rdoc cho ứng dụng đường ray
- 6. Đường ray - Tên miền cookie động sử dụng Rack
- 7. Cách sử dụng nhiều bộ đệm trong đường ray?
- 8. Sử dụng syslog trong ứng dụng đường ray
- 9. Miền tùy chỉnh cho ứng dụng web nhiều người thuê
- 10. Đường ray sử dụng send_file để gửi nhiều tệp
- 11. Hợp nhất hai ứng dụng đường ray
- 12. cách đặt tên miền phụ cho thời lượng thử nghiệm tích hợp trên ứng dụng nhiều trang web?
- 13. Xuất jSON trong ứng dụng đường ray
- 14. Phân tích ứng dụng đường ray
- 15. Sharing phiên trên đường ray ứng dụng trên các tên miền phụ khác nhau
- 16. Tomcat và nhiều tên miền/ứng dụng
- 17. Chạy nhiều trang web từ cùng một codebase đường ray?
- 18. Ứng dụng nhiều trang có đăng nhập một lần trên các tên miền trong Rails?
- 19. Hiệu suất ứng dụng đường ray đơn giản trên heroku
- 20. Nhiều đường ray ORM
- 21. Cách đăng xuất facebook - sử dụng mã trong ứng dụng đường ray (Ruby on Rails Omniauth)
- 22. Truy cập tên ứng dụng từ bên trong mẫu đường ray khi tạo ứng dụng đường ray
- 23. sử dụng sort_by trong ruby (cho đường ray)?
- 24. Đường ray chuyển hướng cho tên miền phụ
- 25. Ứng dụng chung.config cho nhiều ứng dụng
- 26. Cho phép người dùng sử dụng miền tùy chỉnh cho ứng dụng Django trên Heroku
- 27. Ember JS và nhiều ứng dụng một trang
- 28. Đường ray - Sử dụng giao diện SOAP của một ứng dụng khác
- 29. Sử dụng send_file trong đường ray
- 30. Cách hợp nhất nhiều ứng dụng đường ray và chia sẻ tài nguyên
cảm ơn doug! tôi sẽ đào cái này ... – BandsOnABudget