2011-08-19 106 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