2011-08-19 138 views
0

我无法通过HTTP REST发送数据。当我通过chrome扩展'Simple REST Client'尝试POST POST json数据时,出现一个500内部服务器错误,指出“该文档没有有效的根目录”。当我卷曲时,我得到了一个406错误。但是,当我在客户端和卷曲空白数据提交空白文件被创建!我已经将json文本更改为所有可能的有效组合,并将数据重新放入GET中,但没有运气!HTTP POST导轨3 - json - 406&500错误

我的控制器代码是:

def create 
@verify = Verify.new(params[:verify]) 

respond_to do |format| 
    if @verify.save 
    format.html { redirect_to(:back, :notice => 'Verified') } 
    format.json { render :json => @verify, :status => :created, :location => @verify } 
    else 
    format.html { render :action => "new" } 
    format.xml { render :xml => @verify.errors, :status => :unprocessable_entity } 
    format.json { render :json => @verify.errors, :status => :unprocessable_entity } 
    end 
end 

样品JSON

{"www" : "wwww"} 

我使用Mongoid和设计宝石(试图从控制器移除的before_filter但并没有区别) 。

回答

0

Rails 3中增加了一个根元素在默认情况下的ActiveRecord到JSON,因为你正在使用mongoid,尝试代码添加以下内容到mongoid.yml

include_root_in_json: true 
+0

加入到'mongoid.yml'但仍然得到同样的错误。还向模型添加了'self.include_root_in_json = true',并向控制器添加了'@verify.include_root_in_json = true',但也没有改变。 – Daniel

+0

该死的,你有没有检查到'render:json => @ verify'返回的是什么?您是否在Chrome扩展上检查了这个“文档没有有效根”的错误?除此之外,我真的不知道它会是什么 – Draiken