繁体   English   中英

在Rails App和Ruby脚本之间共享模型

[英]Sharing Models between Rails App and Ruby Script

我在Rails应用程序中有一些模型,也希望在Ruby脚本中使用这些模型,这些模型部署在单独的VM上。

我可以创建一个包含这些模型的宝石,然后在两个应用程序中都需要该宝石。 我还可以在github中链接存储库,以便Rails应用程序中的模型与Ruby脚本一起部署。

我觉得宝石方法可能行得通,但不确定此处的最佳做法是什么。

还有其他选择吗?

谢谢

如果通过JSON使控制器可用,则可以通过Internet轻松访问它们。

http:// localhost:3000 / people.json

[
  {"id":1,
   "name":"Eva Smith",
   "age":42,
   "created_at":"2017-02-20T18:52:38.414Z",
   "updated_at":"2017-02-20T18:53:03.112Z",
   "url":"http://localhost:3000/people/1.json"},
  {"id":2,
   "name":"John Smith",
   "age":32,
   "created_at":"2017-02-20T18:52:55.463Z",
   "updated_at":"2017-02-20T18:52:55.463Z",
   "url":"http://localhost:3000/people/2.json"}
]

您可以在Ruby端对此进行解析,并将其转换为对象数组。

JSON.parse(json_string, object_class: OpenStruct)

我以为我会扩大答案。 现在知道问题是如何在其他脚本中使用服务器上存在的记录,基本上有两种选择。 您是在应用中执行此操作,还是在应用程序中执行此操作?

将脚本作为Rake任务运行

将应用程序的副本加载到有问题的VM中,并作为rake任务运行脚本。 这样做的好处很简单:

  • 脚本和模型逻辑之间的紧密集成。
  • 当您只需要管理一个代码库时,更改API就容易得多。
  • 代码共享(模型方法,助手等)
  • 不依赖于其他Rails服务器。

缺点:

  • 部署过程(gem安装,旋转启动等)所需的VM资源可能不切实际。
  • 需要具有将更改与服务器更改同时部署到VM的能力。

使用API​​公开记录

好处几乎与上述相反。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM