PUT请求导致使用Devise和CanCan在Rails应用程序中注销

时间:2013-07-16 21:18:02

标签: ruby-on-rails api devise cancan

在过去的几天里,我一直在寻找答案。我正在尝试使用POSTman测试我的rails应用API。现在我可以做一个GET请求没问题。例如,我可以转到vitogo.org/users/:id.json并为用户获得一个很好的JSON打印输出。

问题是,如果我尝试更新我的用户名,例如通过执行PUT请求,则会破坏用户会话并且不会发生任何事情。我尝试禁用JSON请求的CSRF令牌要求,但这并没有解决问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

所以这里的答案是我发送了错误的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"}}