apc*_*ter 8 javascript json ruby-on-rails
我试图通过JSON请求创建一个ActiveRecord对象.但是,控制器无法设置新创建的对象中的参数中传递的变量.例如,person对象有两个字段:firstname和lastname.
JSON.org库的JSON.stringify函数生成的JSON生成:
{"firstname" : "Joe" , "lastname" : "Bloggs"}
Run Code Online (Sandbox Code Playgroud)
但是,控制器期望JSON采用以下形式:
{ "Person" : {"firstname" : "Joe" , "lastname" : "Bloggs"} }
Run Code Online (Sandbox Code Playgroud)
我知道在正常的事件过程中(对于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
Run Code Online (Sandbox Code Playgroud)
控制器处理生成的JSON请求的最佳方法是什么?或者,如何从Javascript对象生成"正确"的JSON以传递给控制器?
TIA,亚当
| 归档时间: |
|
| 查看次数: |
5953 次 |
| 最近记录: |