我在通过HTTP REST发送数据时遇到问题。当我尝试通过chrome扩展'Simple REST Client‘发布json数据时,我得到一个500内部服务器错误,指出“文档没有有效的根”。当我卷曲时,我得到一个406错误。但是,当我在客户端和curl中都将数据字段保留为空时,就会创建一个空白文档!我已经将json文本更改为所有可能的有效组合,并将数据放回GET生成的位置,但没有成功!
我的控制器代码是:
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和Devise gem(尝试从控制器中删除before_filter,但这没有什么区别)。
发布于 2011-08-20 03:27:14
默认情况下,Rails3会在activerecord中向json添加一个根元素,因为您使用的是mongoid,所以尝试将此添加到您的mongoid.yml中
include_root_in_json: truehttps://stackoverflow.com/questions/7123586
复制相似问题