2017-01-03 3 views
0

У меня есть приложение rails A, на котором размещается большая часть данных, а другое приложение B использует некоторую информацию в таблице, называемой местоположением A, а местоположение - это многие ко многим с пользователями в B, по причине развязки I не хотел делиться БД между A и B, поэтому я просто хочу использовать ActiveResource для B, чтобы получить информацию о модели от A и сохранить связь в B, поэтому вопрос заключается в том, как обрабатывать связь? Возможно, просто поддерживайте таблицу отношений id в B, а затем, как синхронизировать две БД.Как поддерживать связь «многие-ко-многим» между моделью ActiveRecord и моделью ActiveResource в рельсах?

+0

Я бы предложил сделать это через вашу базу данных (или что-то, что работает близко к вашей базе данных, как slony), а не через ваш код. Если вы построите это самостоятельно, он будет очень неуправляемым. Некоторые проблемы, если вы это сделаете сами: будете ли вы синхронизировать обновления? Как насчет транзакций? Что относительно согласованности, когда ваши две базы данных не синхронизированы? –

ответ

0

С точки зрения использования ActiveResource, что я представляю, что

  1. Создание RESTful API в A для совместного расположения.
  2. определение местоположения модели в B с помощью ActiveResource

Тогда мы можем использовать местоположение в качестве нормальной модели в 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 есть бизнес логике, как сохранить информацию о местоположении пользователя. –

Смежные вопросы