2013-02-13 31 views
0

絕對的初學者與紅寶石和鐵路。我第一個完整的項目將通過REST API與現有系統進行交互。RoR - 專門使用其他系統API的項目?

所以它沒有采用正常的ActiveRecord模型,我希望有一些項目的例子可以替代API調用模型的正常使用。整個CRUD集將要求應用程序進行相應的API調用。我想以正確的方式做到這一點,只是不知道看起來像什麼。

謝謝! :)讓Google

幫助鏈接:

http://yetimedia.tumblr.com/post/35233051627/activeresource-is-dead-long-live-activeresource https://github.com/rails/activeresource

回答

2

我不知道是做這個開源的任何項目,但我建議你尋找到Active Resource。它是Rails 3.2中的一部分,但已被移至Rails 4的separate repo。這個想法是,它可以讓你用RESTful API取代數據庫持久性,這聽起來就像你正在嘗試做的。有一些文件here這應該給你足夠的信息來擺脫現實。其上還有一個pretty old Railscast,但我相信這些概念並沒有真正改變那麼多。

下面是從文檔的例子,說明如何設置你的「模式」:

class Person < ActiveResource::Base 
    self.site = "http://api.people.com:3000" 
end 
+0

哇,這正是我需要的。不幸的是,我接口的RESTful API並不遵循ActiveResource所期望的慣例。我最終會在很長的時間內編寫自定義的REST方法。仍然要走,還是有另一個API包裝解決方案要考慮? – CarpeNoctem 2013-02-13 10:01:21

+0

好問題,我認爲答案取決於你想覆蓋多少,只是滾動你自己的系統。您正在與實際遵循REST約定的API集成嗎? – 2013-02-13 13:12:04

+0

那麼它使用delete來創建刪除和post,但是URL結構看起來不符合ActiveResource假定的約定。想知道是否創建一個獨立的API的Ruby包裝,然後我在rails中使用,是值得的。 – CarpeNoctem 2013-02-13 21:31:46

0

我建議利用ActiveModel所以你的模型是不是「AR」的支持,即通過AR沒有持久性。您將在您的控制器中相應地處理CRUD,並製作您自己的「業務邏輯」,您可以將其放入ActiveModel