我在Rails应用程序中使用了一些模型,我希望在部署在单独的VM上的Ruby脚本中使用这些模型。在Rails应用程序和Ruby脚本之间共享模型
我可以创建一个包含这些模型的gem,然后从这两个应用程序中获取这个gem。我还可以链接github中的存储库,以便Rails应用程序中的模型可以使用Ruby脚本进行部署。
我觉得宝石方法可能工作,但不知道最佳做法是在这里。
还有其他的选择吗?
感谢
我在Rails应用程序中使用了一些模型,我希望在部署在单独的VM上的Ruby脚本中使用这些模型。在Rails应用程序和Ruby脚本之间共享模型
我可以创建一个包含这些模型的gem,然后从这两个应用程序中获取这个gem。我还可以链接github中的存储库,以便Rails应用程序中的模型可以使用Ruby脚本进行部署。
我觉得宝石方法可能工作,但不知道最佳做法是在这里。
还有其他的选择吗?
感谢
如果您可以通过JSON控制器,你将能够通过互联网方便地访问它们。
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)
我认为揭露端点是最有意义的! – grizzthedj
我想我会在我的答案扩大。现在知道问题是如何使用其他脚本中服务器上存在的记录,基本上有两种选择。你在应用程序中执行此操作,还是在外面?
加载应用程序的副本到虚拟机的问题,运行脚本作为流氓的任务。这样做的好处很简单:
缺点:
的好处是非常以上的倒数。
你可以扩展如何在独立的Ruby脚本中使用模型吗?你是指仅仅是对象模型,还是你还需要能够与数据库中的现有模型进行交互? –
它主要用于数据库交互。所以只是暴露/使用API对此最有意义。 – grizzthedj
哎呀。我会注意到,根据您的部署配置和特定的脚本需求,将rails应用程序部署到其他系统并将脚本实现为rake任务vs运行与另一个服务器交互的ruby脚本可能更有意义。 –