2010-05-05 57 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])