在Rails引擎之间交换数据

时间:2013-06-26 13:40:49

标签: ruby-on-rails rubygems gem rails-engines


我正在开发一个Rails应用程序,它使用不同的Rails引擎来封装功能。

我想在这些引擎之间交换数据。 是否有可能创建引擎提供的某种公共接口来交换我可以在其他引擎/主机应用程序中使用的数据?或者我应该使用某种JSON API进行访问?

这是一个小例子,应该表明我的意思:
我们假设我有一个“完整”的Rails应用程序。我还在此应用程序中安装了用户引擎和推文引擎。现在我想在tweet-Engine中访问用户的数据。

顺便说一下。还有一种方法可以在Engine-Models之间建立关联吗?

如果有人可以帮助我,我很高兴

提前致谢!

2 个答案:

答案 0 :(得分:2)

有一些方法可以解决这个问题。您可以拥有一个共享数据库,其中引擎具有访问同一数据库的模型,以便彼此之间进行通信。有关详细信息,请参阅rails指南http://guides.rubyonrails.org/engines.html#using-a-class-provided-by-the-application

您所说的另一种方法是构建API,尽管它更适用于单独的应用程序。

答案 1 :(得分:1)

在用户引擎应用程序中写入控制器操作,它将返回xmljson,在推文引擎应用程序中只需使用net:http通过调用用户引擎应用程序的方法来获取数据。 / p>

谢谢