2010-12-13 89 views
2

我是Ruby on Rails的新手,雖然我喜歡所提供的組織和標準,但對於如何在這種特定情況下讓Rails能夠爲我工作,我有點困惑。使用REST API的Ruby on Rails

我有一個Web服務,我想使用我的rails應用程序。直接連接到數據庫會很好,並立即爲我提供使Rails應用程序工作所需的模型。

但是,我將不得不復制web服務提供的所有邏輯(這不是微不足道的)。如果我沒有直接連接數據庫,我將如何堅持模型(例如用戶模型)。

我需要製作一個單獨的數據庫來模擬服務器的數據庫,但從來沒有直接與它進行實際交互?

在此先感謝 - 如果您需要澄清,請告知我。

編輯:實例

  1. 我有一個Rails應用程序上的URL www.mywebservice得到:8080.com/users/5
  2. 服務返回JSON {名稱:富,尼克:酒吧,朋友: baz}
  3. 在這一點上,我該如何告訴rails使用戶對象脫離剛剛獲得的內容,然後將其存儲在數據庫中?或者有沒有辦法堅持這個JSON對象?

回答

1

爲什麼選擇導軌如果你不需要它的任何功能?我建議從Sinatra開始,然後添加您需要的庫,如Rails附帶的JSON,ActiveRecord(?)。

您可以連接到任何您想要的數據庫,而且您不必使用ActiveRecord,但是,很難理解您真正要求的內容。這個標題與這個問題有什麼關係?爲什麼要直接DB?你不想實例化一個用戶對象,然後做一個user.to_json嗎?

KISS! :)

+0

1.我的標題涉及到這個問題,因爲我問如何在不實際連接到API數據庫的情況下模擬REST API的數據庫(或者即使我需要模擬它)。 2.實例化一個用戶對象意味着我必須有一個用戶模型 - 對嗎?這並不意味着我需要有一個各自的用戶表? – hwrdprkns 2010-12-13 22:23:35

5

的ActiveResource處理你的使用情況就好http://api.rubyonrails.org/classes/ActiveResource/Base.html

它的作用是體現在服務返回的JSON和僞造出來的對象,使它看起來就像是一個真正的對象。

class User < ActiveResource::Base 
end 

user = User.find(1) 
puts user.name 
# "scott"