【问题标题】:PUT request causing logout in Rails app with Devise and CanCan使用 Devise 和 CanCan 的 PUT 请求导致 Rails 应用程序中的注销
【发布时间】:2013-07-16 21:18:01
【问题描述】:

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

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

有什么想法吗?

【问题讨论】:

  • 我们可以看一些代码吗?你能在一个较小的应用程序中复制它吗?
  • 当然。我只是不确定什么代码会有所帮助。我还没有尝试过更小的应用程序。

标签: ruby-on-rails api devise cancan


【解决方案1】:

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

key: user[name] value: Dave.

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

【讨论】:

    猜你喜欢
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多