Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.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 轨道为灰烬提供了新的路径_Ruby On Rails_Json_Ruby On Rails 4_Grape - Fatal编程技术网

Ruby on rails 轨道为灰烬提供了新的路径

Ruby on rails 轨道为灰烬提供了新的路径,ruby-on-rails,json,ruby-on-rails-4,grape,Ruby On Rails,Json,Ruby On Rails 4,Grape,我创造了完美的动作 desc "Create a project." params do group :project, type: Hash do requires :name, type: String, desc: "Name of project." requires :user_id, type: String, desc: "user id" requires :descrip

我创造了完美的动作

desc "Create a project."
        params do
          group :project, type: Hash do
            requires :name, type: String, desc: "Name of project."
            requires :user_id, type: String, desc: "user id"
            requires :description, type: String, desc: "Description of project"
            requires :project_type_id, type: String, desc: "Type of project"
          end
        end
        post do
          Project.create!(
              name: params[:project][:name],
              user_id: params[:project][:user_id],
              description: params[:project][:description],
              project_type_id: params[:project][:project_type_id]
          )
        end
但是,当我想创建一个PUT操作来编辑一些值时,JSON中的响应出现了错误:
error:“project[id]丢失”
我的PUT代码:

desc "Update a project."
        params do
          group :project, type: Hash do
            requires :id, type: String, desc: "project ID."
            requires :name, type: String, desc: "Name of project."
            requires :user_id, type: String, desc: "user id"
            requires :description, type: String, desc: "Description of project"
            requires :project_type_id, type: String, desc: "Type of project"
          end
        end
        put ':id' do
          Project.find(params[:project][:id]).update!(
              name: params[:project][:name],
              user_id: params[:project][:user_id],
              description: params[:project][:description],
              project_type_id: params[:project][:project_type_id]
          )
        end

我的错误是什么?

如果没有看到PUT请求中发送的内容,我不确定您的结构,但我认为Grape代码应该是这样的-但是,我完全是在猜测,没有看到您的JSON负载

put ':id' do
  Project.find(params[:id]).update!(
    name: params[:name],
    user_id: params[:user_id],
    description: params[:description],
    project_type_id: params[:project_type_id]
  )
end

嗯。我用这个代码修复它,它就工作了

desc "Update a project."
        params do
          group :project, type: Hash do
            requires :name, type: String, desc: "Name of project."
            requires :user_id, type: String, desc: "user id"
            requires :description, type: String, desc: "Description of project"
            requires :project_type_id, type: String, desc: "Type of project"
          end
        end
        put ':id' do
          Project.find(params[:id]).update!(
              name: params[:project][:name],
              user_id: params[:project][:user_id],
              description: params[:project][:description],
              project_type_id: params[:project][:project_type_id]
          )
        end

你有没有试过用卷发或者其他在余烬之外的东西来达到这条路线?我只是问,因为这似乎与余烬无关。是的。我编辑项目的招摇过市文件和工作的伟大。我只是在rails和SimpleEmber应用程序中创建了简单的GrapeAPI。在ember应用程序中,我生成
ember g脚手架项目….
仅此而已。我从中阅读主题,并通过添加
组:联系人,键入:Hash do
编辑我的Grape API。我不知道为什么编辑没有工作,因为创建了一个新的工作:/这对这里的任何人都没有帮助,真的。您仍然需要提供一个示例JSON payload.Ok。我的前端发送此邮件:
{“project”:{“name”:“tt”,“user_id”:44,“description”:“asdasdad”,“project_type_id”:3,“created_at:”2015-06-03T14:15:06.689Z”,“updated_at:”2015-06-03T14:15:06.689Z“}
我的后端需要此邮件:
{“name”:“tt”,“user_id”:45,“description”:“asdasdad”,“project_type_id”:2,“created_at:”2015-06-034:15:06.689Z“,“更新时间”:“2015-06-03T14:15:06.689Z”}
将来,在您的问题中提供此类示例将有助于您。如果我被认为粗鲁,我很抱歉,这只会有助于演示完整的上下文以获得最佳答案。好消息!如果您使用的是ember数据,我将继续调整您的API以满足他们的约定,以避免头痛。谢谢您的帮助 ! :)