当前位置:  开发笔记 > 编程语言 > 正文

Rails控制器不接受JSON?

如何解决《Rails控制器不接受JSON?》经验,为你挑选了0个好方法。

我试图通过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,亚当

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有