2010-08-03 25 views
5

Tôi hy vọng một người nào đó có thể đề xuất một số phương pháp hay nhất để định cấu hình ứng dụng Rails bằng cơ sở dữ liệu (tức là cài đặt cấu hình bền vững cho cơ sở dữ liệu chứ không phải tệp phẳng). Lý do của tôi cho điều này là tôi có một ứng dụng sẽ chạy trên nhiều máy chủ và có một số cài đặt cấu hình khá năng động và tôi muốn thay đổi chúng mà không phải thực hiện thay đổi trên mỗi máy chủ.Cách tốt nhất để quản lý cài đặt cấu hình ứng dụng Rails tồn tại trong cơ sở dữ liệu là gì?

Trong các ngôn ngữ khác, tôi đã thấy điều này bằng cách sử dụng một bảng cấu hình đơn giản (như cặp tên/giá trị) và một singleton cho thấy dữ liệu cấu hình và định kỳ được làm mới. Có cách nào tương tự - hay tốt hơn để làm điều này với Rails không?

Xin cảm ơn trước.

+0

Trong tìm kiếm của tôi để tham khảo singleton cho Ruby/Rails, tôi đã đi qua nhiều bài báo (bao gồm một số bài viết về SO) làm nổi bật các vấn đề với mẫu Singleton. Tôi không kết hôn với việc thực hiện đó - mối quan tâm chính của tôi là tôi có thể cập nhật cấu hình ở một nơi duy nhất và nó có hiệu lực trên tất cả các phiên bản của ứng dụng. Tôi không muốn có các bộ phận chuyển động liên quan đến các thay đổi tập lệnh trên nhiều máy chủ, do đó, cơ sở dữ liệu là lựa chọn tự nhiên của tôi. Bất kỳ giải pháp nào giúp tôi không phải cập nhật cấu hình ở mọi nơi mà ứng dụng chạy đều ổn. –

Trả lời

1

Không phải giải pháp đẹp nhất tôi chắc chắn, nhưng một điều chúng tôi đã làm cho các ứng dụng nội bộ của chúng tôi là tạo trường 'cấu hình' đơn giản chỉ là trường văn bản chứa băm được mã hóa. Sau đó, chúng tôi deserialize trên tải từ db.

+0

Cảm ơn bạn đã đề xuất. Bạn có sử dụng module ApplicationHelper để truy vấn/deserialize/cung cấp các phương thức getter-type cho hash cấu hình không? Hoặc là có một cách tiếp cận tốt hơn? –

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