我正在开发一个Rails应用程序,它使用不同的Rails引擎来封装功能。
我想在这些引擎之间交换数据。 是否有可能创建引擎提供的某种公共接口来交换我可以在其他引擎/主机应用程序中使用的数据?或者我应该使用某种JSON API进行访问?
这是一个小例子,应该表明我的意思:
我们假设我有一个“完整”的Rails应用程序。我还在此应用程序中安装了用户引擎和推文引擎。现在我想在tweet-Engine中访问用户的数据。
顺便说一下。还有一种方法可以在Engine-Models之间建立关联吗?
如果有人可以帮助我,我很高兴
提前致谢!
答案 0 :(得分:2)
有一些方法可以解决这个问题。您可以拥有一个共享数据库,其中引擎具有访问同一数据库的模型,以便彼此之间进行通信。有关详细信息,请参阅rails指南http://guides.rubyonrails.org/engines.html#using-a-class-provided-by-the-application
您所说的另一种方法是构建API,尽管它更适用于单独的应用程序。
答案 1 :(得分:1)
在用户引擎应用程序中写入控制器操作,它将返回xml
或json
,在推文引擎应用程序中只需使用net:http
通过调用用户引擎应用程序的方法来获取数据。 / p>
谢谢