2017-01-03 32 views
0

我有一個rails應用程序A,託管大部分數據,並有另一個應用程序B在表中使用一些稱爲位置A的信息,並且該位置與B中的用戶多對多,用於解耦原因I不想在A和B之間共享數據庫,所以我只想使用ActiveResource for B從A獲取模型信息,並將關聯保存在B中,所以問題是如何處理關聯?也許只是在B中維護一個id關係表,然後如何同步這兩個數據庫。如何在Rails中維護ActiveRecord模型和ActiveResource模型之間的多對多關聯?

+0

我建議通過數據庫(或接近運行到您的數據庫就像Slony聚的東西)這樣做,而不是通過您的代碼。如果你自己構建它,它會很快變得難以管理。如果你自己做一些擔心:你會同步更新嗎?關於交易呢?當兩個數據庫不同步時,一致性如何? –

回答

0

在使用的ActiveResource,我想象的方面是,

  1. 共享位置創建一個在一個RESTful的API。
  2. 使用的ActiveResource

然後我們可以使用位置作爲B.正常模型中定義B中的選址模型或者我們可以創建一個從A和B兩個隔離的API服務器,我不知道的上面提到的關聯問題。也許我誤解了這個問題?

class Location < ActiveResource::Base 
    self.site = "http://api.b.com:3000" 
    has_many :users, through: :location_users 
end 
+0

問題是:我們應該在B中有一個location_users表,location_users包含location_id和user_id,但是如果在A中刪除了位置,那麼我們應該碰到一個錯誤,順便說一句,location_user有一些業務像保持用戶位置特殊信息的邏輯。 –