我在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腳本可能更有意義。 –