我试图在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
我认为很多人这样做,所以我不知道为什么我找不到如何做的解释。
答案 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"}}