我试图通过JSON请求创建一个ActiveRecord对象.但是,控制器无法设置新创建的对象中的参数中传递的变量.例如,person对象有两个字段:firstname和lastname.
JSON.org库的JSON.stringify函数生成的JSON生成:
{"firstname" : "Joe" , "lastname" : "Bloggs"}
但是,控制器期望JSON采用以下形式:
{ "Person" : {"firstname" : "Joe" , "lastname" : "Bloggs"} }
我知道在正常的事件过程中(对于HTTP请求),请求的参数嵌套在正在创建的模型的类名下.
控制器中的create动作是:
def create @person = Person.new(params[:person]) respond_to do |format| if @person.save flash[:notice] = 'Person was successfully created.' format.html { redirect_to(@person) } format.xml { render :xml => @person, :status => :created, :location => @person } format.json { render :json => @person, :status => :created, :location => @person } else format.html { render :action => "new" } format.xml { render :xml => @person.errors, :status => :unprocessable_entity } format.json { render :json => @person.errors, :status => :unprocessable_entity } end end end
控制器处理生成的JSON请求的最佳方法是什么?或者,如何从Javascript对象生成"正确"的JSON以传递给控制器?
TIA,亚当