Ruby on rails 使用JSON API写入Rails

Ruby on rails 使用JSON API写入Rails,ruby-on-rails,json,api,Ruby On Rails,Json,Api,几天来,我一直在尝试从编写一个常规的单模型rails应用程序,但我不知道如何做,也找不到任何关于如何做的信息 我的应用程序有一个带有名称字段的用户模型。我所要做的就是使用POSTman通过JSON远程更改名称 任何关于如何做到这一点的帮助,包括一个关于如何做到这一点的基本资源链接,我们都将不胜感激 我想这是很基本的 编辑:这是邮递员输出的屏幕截图 编辑2: 从服务器日志: Started PUT "/users/1.json" for 127.0.0.1 at 2013-07-17 16:53

几天来,我一直在尝试从编写一个常规的单模型rails应用程序,但我不知道如何做,也找不到任何关于如何做的信息

我的应用程序有一个带有名称字段的用户模型。我所要做的就是使用POSTman通过JSON远程更改名称

任何关于如何做到这一点的帮助,包括一个关于如何做到这一点的基本资源链接,我们都将不胜感激

我想这是很基本的

编辑:这是邮递员输出的屏幕截图

编辑2:

从服务器日志:

Started PUT "/users/1.json" for 127.0.0.1 at 2013-07-17 16:53:36 -0400
Processing by UsersController#update as JSON
  Parameters: {"name"=>"Jeff", "id"=>"1"}
  User Load (0.2ms)  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", "1"]]
   (0.1ms)  begin transaction
   (0.1ms)  commit transaction
Completed 204 No Content in 3ms (ActiveRecord: 0.4ms)
事务正在发生,但记录实际上没有被更新。我是否需要更改控制器中的某些内容?它只是一个常规的rails生成的控制器,没有任何更改

编辑3:

这是我刚转到
http://localhost:3000/users/1.json

{
"created_at": "2013-07-02T21:51:22Z",
"id": 1,
"name": "Arel",
"updated_at": "2013-07-02T21:51:22Z"
}
同样,我没有对scaffold做任何更改,我也没有弄清楚如何格式化JSON以将其嵌套在用户下,正如答案所示

以下是我的控制器的相关部分:

# GET /users/1
  # GET /users/1.json
  def show
    @user = User.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @user }
    end
  end

# PUT /users/1
  # PUT /users/1.json
  def update
    @user = User.find(params[:id])

    respond_to do |format|
      if @user.update_attributes(params[:user])
        format.html { redirect_to @user, notice: 'User was successfully updated.' }
        format.json {  }
      else
        format.html { render action: "edit" }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end

我不明白为什么这么难。我正在尝试通过JSON更新您要发布到的控制器的名称…

protect_from_forgery with: :null_session
或类似于:

编辑

您的JSON不正确。。。你正在发帖

{"name"=>"Jeff", "id"=>"1"}
由于您的控制器执行
user.update_属性(params[:user])
,因此您的JSON需要位于用户属性下

{
    "id": 1,
    "user": {
        "name": "Jeff"
    }
}
这将创建一个

{"user"=>{"name"=>"Jeff"}, "id"=>"1"}

到底是什么问题?您是否在rails服务器日志中看到任何输出?它什么也不做。当我输入地址并选择put时,键为name,值为Jeff 204,则不显示任何内容returned@diego.greyrobot我刚刚添加了一个我一直在尝试做的截图。你可能在你的日志中看到了这一点,对吗?“警告:无法验证CSRF令牌的真实性”是!如何仅对JSON请求禁用它?因此,现在它没有给出CSRF令牌错误,但在提交事务后仍然给出204无内容错误。我已经用完整的输出更新了我的问题。我完全迷路了。我一直在阅读rails文档,试图找出如何按照您所展示的方式格式化JSON输出,他们说输出应该已经是您的方式了,并且只给出了如何从您的(正确的)格式更改为我的错误格式的说明。以下是文档:我还用我的输出和控制器更新了我的问题。输出是无关的。您正在发送输入。输入格式与输出格式不同。在postman中,将字段的名称更改为“user[name]”,这样做很有效!!谢谢你帮助我!我真的很感激!
{"user"=>{"name"=>"Jeff"}, "id"=>"1"}