Обмен данными между Rails Engines


Я разрабатываю приложение Rails, которое использует разные движки Rails для инкапсуляции функциональности.

Я хочу обмениваться данными между этими двигателями. Есть ли возможность создать какой-то общедоступный интерфейс, предлагаемый движком для обмена данными, которые я могу использовать в других движках / хост-приложении? Или я должен использовать какой-то JSON API для доступа?

Вот небольшой пример, который должен показать, что я имею в виду:
Предположим, у меня есть «полное» приложение Rails. У меня также есть user-Engine и tweet-Engine, установленные в этом приложении. Теперь я хочу получить доступ к данным пользователя в tweet-Engine.

Кстати. Есть ли способ создать ассоциации между моделями двигателей?

Я очень рад, если кто-то может мне помочь

Заранее спасибо!


person pmuens    schedule 26.06.2013    source источник
comment
в приложении пользовательского движка напишите действие контроллера, которое вернет xml или json, а в приложении движка твитов просто используйте net:http для получения данных, вызвав методы приложения пользовательского движка.   -  person Rajarshi Das    schedule 26.06.2013
comment
Если это сработает, не могли бы вы проголосовать за меня ниже   -  person Rajarshi Das    schedule 26.06.2013


Ответы (2)


Есть несколько подходов к этому. У вас может быть общая база данных, в которой у движков есть модели, которые обращаются к одной и той же базе данных для связи друг с другом. См. руководство по рельсам для получения дополнительной информации http://guides.rubyonrails.org/engines.html#using-a-class-provided-by-the-application

Другой подход, как вы сказали, заключается в создании API, хотя он более применим к отдельным приложениям.

person MatthewFord    schedule 26.06.2013

в приложении пользовательского движка напишите действие контроллера, которое вернет xml или json, а в приложении движка твитов просто используйте net:http для получения данных, вызвав методы приложения пользовательского движка.

Спасибо

person Rajarshi Das    schedule 26.06.2013