Tôi có một ứng dụng Rails 3 sử dụng các cơ sở dữ liệu khác nhau tùy thuộc vào tên miền phụ. Tôi làm điều này bằng cách sử dụng "establish_connection" trong ApplicationController.Tôi có thể buộc delay_job sử dụng kết nối db cụ thể như thế nào?
Bây giờ tôi đang cố gắng sử dụng đá quý delay_job để thực hiện một số xử lý nền, tuy nhiên nó sử dụng kết nối cơ sở dữ liệu mà nó đang hoạt động trong thời điểm đó. Nó đang kết nối với cơ sở dữ liệu tên miền phụ.
Tôi muốn ép buộc sử dụng cơ sở dữ liệu "chung". Tôi đã thực hiện việc này cho một số kiểu gọi là "establish_connection" trong mô hình như sau:
class Customer < ActiveRecord::Base
establish_connection ActiveRecord::Base.configurations["#{Rails.env}"]
...
end
Bất kỳ ý tưởng nào tôi có thể làm điều này?
Chúng tôi đang gặp sự cố tương tự. Rất thích một phản ứng. BTW, JAG, bạn đang làm gì để làm multitenancy dựa trên tên miền phụ? Chúng tôi đang làm việc trên một viên ngọc và sẽ yêu một số đầu vào. –
Tôi đã cuộn của riêng mình vì tôi không tìm thấy bất cứ điều gì phù hợp với nhu cầu của tôi. Về cơ bản tôi có một 'setup_subdomain' before_filter mà chuyển sang DB thích hợp. Tôi rất muốn kiểm tra đá quý của bạn, bất kỳ liên kết? – JAG
Có thể sửa đổi đá quý delay_job, nếu nó trên Github là cách duy nhất và bao gồm nó bằng cách sử dụng: git => trong gemfile của bạn. –