2017-01-03 9 views
0

私はレールアプリAを持っていて、データの大半をホストし、別のアプリBがAの場所と呼ばれるテーブルで情報を使用しています。その場所はBのユーザーと多対多であり、 AとBの間でDBを共有したくないので、Aのモデル情報を取得するためにBのActiveResourceを使用し、Bの関連付けを維持したいので、どうやって関連付けを処理するのですか?たぶんBでid関係テーブルを維持し、次に2つのDBをどのように同期させるか。私が想像して何ActiveResourceを、使用しての面でActiveRecordモデルとActiveResourceモデルとの多対多関連をレールでどのように維持するか?

+0

私はあなたのデータベース(またはSlonyのようなあなたのデータベースに密接に走る何か)を介して、ではないあなたのコードを介してこれを行うことを示唆しています。これを自分で構築すると、非常に手早く管理できなくなります。あなたがそれを自分自身で行う場合、いくつかの懸念事項があります:アップデートを同期させますか?トランザクションはどうですか?あなたの2つのデータベースが同期していないときの一貫性はどうですか? –

答えて

0

  1. は場所を共有するためのAでのRESTful APIを作成していることです。
  2. は、その後、私はわからないんだけど、我々はBに通常のモデルとして場所を使用するか、我々はAとBの両方から分離されたAPIサーバーを作成することができActiveResource

を使用してBでの場所のモデルを定義します上記の関連付けの問題。たぶん私はその質問を誤解したでしょうか?

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で削除された場所については、エラーが発生します。ユーザの所在地を特定の情報として保持するような論理。 –

関連する問題