Tôi đang phát triển ứng dụng Rails theo mặc định thiết lập tài khoản người dùng cho tên miền phụ mà họ chọn. Là một tùy chọn, họ sẽ có thể ánh xạ toàn bộ miền của riêng họ vào tài khoản của họ.Làm cách nào để ánh xạ miền đầy đủ sang tài khoản ứng dụng Rails dựa trên miền phụ?
Cho đến nay đây là cách tôi thiết lập mọi thứ. Tôi đang sử dụng subdomain-fu để tăng sức mạnh các tuyến:
# routes.rb
map.with_options :conditions => {:subdomain => true} do |app|
app.resources # User's application routes are all mapped here
end
map.with_options :conditions => {:subdomain => false} do |www|
www.resources # Public-facing sales website routes are mapped here
end
Bên cạnh đó, tôi đang sử dụng method described here để có được những tài khoản được truy cập thông qua tên miền phụ hoặc miền đầy đủ:
before_filter :set_current_account
def set_current_account
if request.host.ends_with? current_domain
# via subdomain
@current_club = Club.find_by_subdomain(current_subdomain)
else
# via full domain
@current_club = Club.find_by_mapped_domain(request.host)
end
end
Tôi có không đã đi rất xa quá trình xây dựng này, nhưng tôi đã có thể thấy tôi sẽ gặp vấn đề với định tuyến. Nếu request.host
là một số tên miền random.com thì subdomain-fu sẽ không định tuyến các tuyến thích hợp?
Tôi cho rằng đây không phải là vấn đề bất thường, vì vậy bất kỳ ai cũng có thể chia sẻ cách họ giải quyết vấn đề này hoặc cách tôi định cấu hình tuyến đường để thực hiện những gì tôi cần?
Cám ơn câu trả lời của bạn. Sau khi thử nghiệm với giải pháp khác được đăng ở đây, tôi đã đi đến kết luận rằng bạn đúng và vì tính đơn giản vì điều tốt nhất là chia thành hai ứng dụng và loại bỏ tên miền phụ-fu. – aaronrussell