带有Devise的Rails JSON API - PUT请求登出用户

时间:2013-07-16 03:23:42

标签: ruby-on-rails json devise cancan

我试图在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

我认为很多人这样做,所以我不知道为什么我找不到如何做的解释。

1 个答案:

答案 0 :(得分:2)

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

key: user[name] value: Dave.

上面的例子会将我的名字从Arel改为Dave。它的作用是将{"name"=>"Dave", "id"=>"39"}发送的JSON更改为{"user"=>{"name"=>"Dave", "id"=>"39"}}