2010-05-05 77 views
0

我正在使用cURL來測試RESTFul HTTP Web服務。問題是,我通常提交了一堆價值通常是這樣的:Ruby on Rails:降低RESTFul HTTP POST請求中參數的複雜度(多模式)

curl -d "firstname=bob&lastname=smith&age=25&from=kansas&someothermodelattr=val" -H "Content-Type: application/x-www-form-urlencoded" http://mysite/people.xml -i 

的問題,這是我的,然後控制器將有這樣的代碼:

unless params[:firstname].nil? 

end 
unless params[:lastname].nil? 

end 
// FINALLY 
@person = People.new(params[:firstname], params[:lastname], params[:age], params[:from]) 

等。

簡化這個最好的方法是什麼?我的人模型具有它需要的所有驗證。有沒有一種方法(假設請求有多重模型參數),我可以這樣做:

@person = People.new(PARAMS [:人])

,然後初始化可以照顧休息?

回答

0

對不起,這個問題有點不清楚。你問的是如何嵌套請求中的參數?這是這樣的:

curl -d "person[firstname]=bob&person[lastname]=smith&person[age]=25&person[from]=kansas&someothermodel[attr]=val" -H "Content-Type: application/x-www-form-urlencoded" http://mysite/people.xml -i 

然後,你可以做

@person = People.new(params[:person])