2011-04-20 30 views
5

Tôi đang xây dựng ứng dụng Rails 3 sẽ có cài đặt dành riêng cho người dùng (ngoại hình, chức năng, v.v) và tôi đang tìm kiếm một số lời khuyên đơn giản về cách thực hiện cài đặt thực sự ưu tiên.Cách ưa thích để thực hiện cài đặt trong ứng dụng Ruby on Rails 3 là gì?

Bạn có thích mô hình chuyên dụng cho nội dung này không? Có thể chấp nhận băm để lưu trữ trong trường cơ sở dữ liệu không? Bạn có thích cookie hoặc phiên trên cơ sở dữ liệu không? Đối tượng STI có tốt nhất không?

Có thể liệt kê một số ưu điểm hay nhược điểm cho từng phương pháp khác nhau nếu bạn có thể.

Cảm ơn.

Trả lời

3

Tôi cũng có tình huống tương tự như bạn, cài đặt cụ thể của người dùng. Trong các ứng dụng của tôi, tôi thích tạo ra một mô hình để lưu trữ cấu hình của người dùng, tôi đã sử dụng mô hình Người dùng và mô hình User_configuration, trong đó mối quan hệ là một-một.

class User < ActiveRecord::Base 
    has_one :user_configuration 
end 

class UserConfiguration < ActiveRecord::Base 
    belongs_to :user, :dependent => :destroy 
end 

Hoặc nếu bạn thích sử dụng Hash và lưu nó vào cơ sở dữ liệu có thể đánh dấu lĩnh vực của bạn như serialize

class User < ActiveRecord::Base 
    serialize :preferences, Hash 
end 

bạn có thể thấy nó ở http://api.rubyonrails.org/classes/ActiveRecord/Base.html

ưu: - cho đến nay tôi đã không có bất kỳ vấn đề, nó dễ dàng để bảo trì

khuyết điểm: - yêu cầu thêm bảng trong cơ sở dữ liệu

Có thể nó có thể giúp bạn cảm ơn.

+0

Cảm ơn! Đây là những gì tôi đang tìm kiếm. Tôi chắc chắn rằng tất cả phụ thuộc vào kích thước dự án là tốt. –

+0

Tôi đã quyết định đi với phương pháp mô hình. Tôi nghĩ rằng cuối cùng sẽ dễ dàng hơn để duy trì trong thời gian dài khi ứng dụng phát triển. Tôi cũng đọc rằng serialization có giới hạn của nó dựa trên kích thước của trường văn bản trong cơ sở dữ liệu mà bạn đang lưu trữ trong đó có tiềm năng là một thứ khác cần phải lo lắng về việc dữ liệu bị hỏng trả về. Nói chung tôi tin rằng các vấn đề hiệu suất có thể được giảm nhẹ và nếu tồi tệ nhất đến tồi tệ nhất bạn có thể off-shore cặp khóa/giá trị lưu trữ cho một dịch vụ để giảm tải trên cơ sở dữ liệu. –

2

Nếu bạn muốn có một số giải pháp có cấu trúc bạn có thể có một cái nhìn tại địa chỉ:

  1. Configurable Engine
  2. hoặc rails-settings
+0

Cảm ơn bạn đã chỉ ra những viên đá quý này. Tôi có thể cung cấp cho một số trong những một thử sau khi tôi đã nhận nó xuống bản thân mình trong đường ray chính nó. –

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