Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在rails中处理JSON以在更新中响应ember_Ruby On Rails_Ember.js_Server - Fatal编程技术网

Ruby on rails 如何在rails中处理JSON以在更新中响应ember

Ruby on rails 如何在rails中处理JSON以在更新中响应ember,ruby-on-rails,ember.js,server,Ruby On Rails,Ember.js,Server,我需要从rails服务器创建一个正确的响应,但我不知道如何创建 这就是我犯的错误 警告:在有效负载中遇到“status”,但找不到模型名为“status”的模型(使用解析模型名)frontend@serializer:post:.modelNameFromPayloadKey(“状态”)” controller/posts/edit.js export default Ember.Controller.extend({ actions:{ submit: function(p

我需要从rails服务器创建一个正确的响应,但我不知道如何创建

这就是我犯的错误

警告:在有效负载中遇到“status”,但找不到模型名为“status”的模型(使用解析模型名)frontend@serializer:post:.modelNameFromPayloadKey(“状态”)”

controller/posts/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');
        });

        }
  }
});
这是rails中的函数,当我在ember中保存帖子时,它会被命中

  def update

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

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


  end
model/post.js

export default DS.Model.extend({
  title: DS.attr("string"),
  body: DS.attr("string")
});
那么我如何在rails中处理json来告诉我我的帖子何时可以更新


注意:帖子已成功更新,但在我的日志控制台中显示了该消息,我想纠正它

这听起来像您的Ember序列化程序是当前默认的
JSONAPISerializer
,它对您的JSON响应应该是什么样子有着强烈的意见。相反,如果切换到更基本的序列化程序(如RESTSerializer),则可能会停止看到错误。更多信息请参见:


也就是说,使用Ember和Rails的部分优势在于,您可以使用预构建的序列化层,这将简化使用API时所需的大量来回数据。因此,可能也值得探索这些选项…

所以您的服务器返回无效的JSON,我们应该通过查看水晶球来猜测原因?首先看看服务器如何响应并建立一个。信不信由你的答案帮助我,我一直在关注这个问题,就像问题只是余烬一样,所以我需要重新表述我的问题。我猜你不需要返回任何JSON。您应该能够只使用
标题:ok
。对于不成功的响应,您应该返回422个不可处理的实体-
呈现json:{errors:@post.errors.full_messages},status::unprocessable_entity
。这取决于ember中使用的适配器。但我确实建议您确保应用程序返回正确的HTTPs响应代码。