2017-04-06 43 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。所以它可能是值得探索这些选项太...