【发布时间】:2019-03-11 20:51:27
【问题描述】:
所以我有一个接受 JSON 作为有效负载的控制器
def create
@tournoi = Tournoi.new(payload: JSON.parse(params[:payload]))
if @tournoi.save
redirect_to root_url
flash[:success] = "Your tournament bracket has been validated!"
json 来自可编辑的 js 图表,我使用 XMLHttpRquest 和 formData 保存 JSON:
function save() {
var tojs = myDiagram.model.toJSON();
var json = JSON.stringify(tojs);
var formData = new FormData();
formData.append("payload", json);
var request = new XMLHttpRequest();
request.open("post", "http://localhost:3000/malesingle", true);
request.send(formData);
}
JSON 已成功插入到我的控制器中,我在我的 tournois 控制器的 create 方法上被重定向到 TypeError 登录页面,我知道我的有效负载在保存之前为零,我不知道为什么我声明的方式@tournoi = Tournoi.new(payload: JSON.parse(params[:payload])) 不保证从零到有效负载的转换..
【问题讨论】:
-
你可以在保存之前用 byebug 放置刹车点或撬动以检查@tournoi 的值吗?
-
@Nezir 从未使用过 pry 或 byebug 不知道它是如何工作的,我会调查一下
-
为什么不将整个请求以 JSON 格式发送?对于一个简单的问题,这似乎是一个非常不稳定的解决方案。
-
如果您使用的是 rails 5.2,它非常简单,默认情况下只需要在 tournoi.save byebug 行之前编写并刷新页面,它将在该行停止。比在控制台中写 tournoi ,它会向你展示一个内容..但它很好地阅读使用它将对你将来非常有用
-
@max 好吧,我正在使用我所知道的知识来处理 json 作为有效负载,你能告诉我以 JSON 格式发送请求吗
标签: ruby-on-rails json xmlhttprequest