1

我正在尝试使用 Rails 站点上的 JSON API 简单地更新记录。开发网站:vitogo.org。我CanCan用于授权和Devise身份验证。

使用POSTman我可以很好地发出 GET 请求,但是当我尝试发出 PUT 请求时,它只会让我退出网站。

我一直在寻找一段时间,找不到解决我问题的答案。我认为这与从 JSON API 发出 PUT 请求时没有 CSRF 令牌有关,所以我尝试添加:

before_filter :verified_request?

def verified_request?
    if request.content_type == "application/json"
      true
    else
      super()
    end
  end

我假设很多人都这样做,所以我不知道为什么我无法找到如何做到这一点的解释。

4

1 回答 1

2

所以这里的答案是我发送了错误的 JSON。使用 POSTmankey value pair时,我只是在需要时提供model[key]:value. 所以在我的情况下,要在用户模型中更新我的名字,我需要这样做:

key: user[name] value: Dave.

上面的示例会将我的名字从 Arel 更改为 Dave。它所做的是将{"name"=>"Dave", "id"=>"39"}错误发送的 JSON 更改为{"user"=>{"name"=>"Dave", "id"=>"39"}}

于 2013-07-23T03:01:58.557 回答