【发布时间】:2018-10-06 02:03:13
【问题描述】:
我一直在使用 gojs 库进行一些工作,该库可以让您生成图表,从锦标赛括号到家谱等。
我正在使用保存功能通过 formData 将我的数据集提交给我的模型,
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);
}
我的控制器是在将有效负载解析为参数之后的一组操作。 定义创建
@tournoi = Tournoi.new(payload: JSON.parse(params[:payload]))
if @tournoi.save
redirect_to malesingle_url
我什至使用序列化来避免将对象传递给模型时出现任何问题:
class Tournoi < ApplicationRecord
serialize :payload, JSON
end
感谢 postgrel on rails,我的模型设置为将 json 对象作为 'payload' 接受到数据中。
class CreateTournois < ActiveRecord::Migration[5.1]
def change
create_table :tournois do |t|
t.json 'payload'
t.timestamps
end
end
end
在保存 tournoi 后,如果@tournoi.save redirect_to malesingle_url,假设以下操作是重定向到另一个视图
json 对象作为 payload 通过参数传递,它被插入到 tournois 表中,然后提交到数据库中。
我得到一个 TypeError(没有将 nil 隐式转换为字符串):app/controllers/tournois_controller.rb:7:in create
单击保存按钮后,我的浏览器向我显示一个动作控制器异常,其中**没有将 nil 隐式转换为字符串**突出显示 @tournoi = Tournoi.new(payload: JSON.parse(params[:payload]))
在检查我的页面时,我在我的 javascript 控制台上进行控制台警告不推荐使用突变事件。请改用 MutationObserver。 我上网四处看看,以了解为什么我收到此消息,他们都提到了 dom 修改,我试图通过将 json 对象分配给数据来执行此操作,但我不理解的是在我的终端上它表明我的对象已保存,但出现错误。对我来说真的没有任何意义。
【问题讨论】:
-
这些都有效吗?
request.send(JSON.stringify(tojs))或者如果它没有自动映射request.send({payload: JSON.stringify(tojs)}) -
@Nope 我在
request.send(JSON.stringify(tojs))上得到一个TypeError,在request.send({payload: JSON.stringify(tojs)})上得到一个语法错误,并且没有任何东西插入到我的数据库中
标签: javascript ruby-on-rails json postgresql dom