2017-04-06 40 views
0

我需要從rails服務器創建正確的響應,但我不知道如何。如何在rails中處理我的JSON以響應更新中的餘燼

這是拋出我

「警告:遇到‘錯誤狀態’,在有效載荷,但沒有模型被發現的型號名稱‘(使用前端@串行解決型號名稱狀態’:職位:.modelNameFromPayloadKey (「狀態」))」

控制器/職位/ edit.js

export default Ember.Controller.extend({ 
    actions:{ 
     submit: function(params){ 

     var self = this; 

     this.store.findRecord('post', params).then(function(post){ 
      post.save(); 
      self.transitionToRoute('posts'); 
     }); 

     } 
    } 
}); 

這是在軌功能,當我救我的崗位在灰燼

,它的命中
def update 

     post = Post.find(params[:id]) 

     if post.update(strong_params) 
      render json: {status: "ok"} 
     else 
     render json: {status: "error"} 
     end 


    end 

模型/ post.js

export default DS.Model.extend({ 
    title: DS.attr("string"), 
    body: DS.attr("string") 
}); 

所以,我怎麼處理我在軌JSON來告訴我,當我的職位,可以更新或不

注:職位是成功更新,但在我日誌控制檯出現該消息,我想使它正確

+0

因此,您的服務器返回無效的JSON,我們應該猜測爲什麼通過看我們的水晶球?首先看看服務器如何響應並建立[MVCE](https://stackoverflow.com/help/mcve)。 – max

+0

相信與否你的答案幫助我,我一直在看問題,只是問題是燼,所以我需要重新構思我的問題 – Raxor

+0

我猜你不需要返回任何JSON。你應該只能使用'head:ok'。對於不成功的響應,您應該返回422無法處理的實體 - 「render json:{errors:@ post.errors.full_messages},status::unprocessable_entity'。這取決於在ember中使用的適配器。但我真的建議你確保你的應用程序返回正確的HTTPs響應代碼。 – max

回答

0

這聽起來像你的Ember序列化程序目前是默認的JSONAPISerializer,它帶有關於你的JSON響應應該看起來像什麼的強烈意見。如果您改爲使用更基本的串行器(例如RESTSerializer),則可能會停止查看錯誤。更多信息請看這裏:https://guides.emberjs.com/v2.12.0/models/customizing-serializers/

這就是說,使用Ember和Rails的好處之一是你可以使用預先構建的序列化層,它可以簡化大量數據來回處理API。所以它可能是值得探索這些選項太...