2016-10-20 20 views
1

所以我有一個電子商務網站,我的任務是將我的rails(4)應用程序與另一個網站(我們的製造商)連接起來,以顯示訂單並從他們那邊更新庫存。也就是我需要在兩個rails應用程序之間共享一個數據庫和模型。供應商網站不是僅僅供參考,我必須從頭開始構建它。如何將兩個rails應用程序數據庫和模型鏈接在一起?

Side Note:我知道一個自定義的管理面板會更容易,但是,我的老闆,根本不知道技術的老闆似乎堅持要在單獨的URL上使用這些控制面板,儘管他擁有兩個公司,和製造公司。

我只需要一個路線圖,或者只是一個正確的方向,因爲我不完全確定我在找什麼。只是一些關於如何做到這一點的可靠信息。

我目前在我現有的Rails應用中使用了heroku和AWS。 我使用PostgreSQL作爲我的數據庫。

回答

2

您將需要使用establish_connection

我只是做了這樣的事情曾經那麼下面可能是錯的,但將有希望給你一個想法。不確定鏈接模型是什麼意思。但是,這將允許您查詢供應商數據庫並擁有您想要與這些數據庫相關的名稱空間的模型。

我最好設置在database.yml中的供應商數據庫(可能爲每個環境)

我會再有一個底座供應商模式,所有的人都是來自

class VendorApplicationRecord < ActiveRecord::Base 
    self.abstract_class = true 
    establish_connection "vendor_#{ Rails.env }" 
end 

繼承的項假設你設置database.yml來讓vendor_development等

2

共享數據庫非常簡單。實際上,這和共享數據庫一樣。您只需在database.yml中進行適當的配置並聲明模型即可。

現在你可能會想:「嘿,那是重複的代碼!爲什麼我不只是將模型提取到寶石或其他東西?」。對此我說,不要。只需複製必要的東西。很可能在一個應用程序中,您需要完整的模型,驗證,before/after_save掛鉤等等。另一個應用程序將只讀取數據,所以它不需要任何額外的複雜性。

相關問題