【发布时间】:2018-04-05 16:25:35
【问题描述】:
我正在开发基于GOjs library 的锦标赛括号,该括号有分数输入。
一旦我的用户完成了对括号的编辑,我将括号保存到 JSON 变量中:
function save() {
var tojs = myDiagram.model.toJSON();
var payload = JSON.parse(tojs);
stringify_tojs = JSON.stringify(payload);
myDiagram.isModified = false;
我使用 XMLHttpRequest 将有效负载发布到处理“有效负载”的 Rails 模型中:
var request = new XMLHttpRequest();
request.onload = callback;
request.open("post", "http://localhost:3000/malesingles");
request.setRequestHeader("Content-Type", "application/json");
request.send(payload);
我不知道我哪里出错了,但我确定它就在我身边 控制器参数,但我找不到我的错误已经一个星期了, 控制器看起来像这样:
@tournoi = Tournoi.new(bracket_params)
if @tournoi.save
redirect_to root_url
flash[:success] = "Your tournament bracket has been validated!"
# redirect_to @tournoi
else
render 'new'
end
结束
我已将括号参数包含在私人设置中
def bracket_params
params.require(:tournoi).permit(:payload)
end
尝试了不同的方法来发布有效负载,但都没有真正起作用,希望能得到一些帮助以了解我出错的地方,我得到一个参数丢失或为空:/。
【问题讨论】:
-
尝试要求在文件顶部的控制器中撬动,在创建模型 Tournoi 的新实例之前,在控制器中添加
binding.pry并运行您的操作,bracket_params中的内容点? -
也许
JSON.parse(params) -
@DavidDacruz tournoi 使用`bracket_params params.require(:tournoi).permit(:payload)`
-
@FabrizioBertoglio 我在使用 JSON.parse(params[:payload]) 时得到一个(没有将 nil 隐式转换为字符串)
-
@DezzH 尝试参数[:tournoi][:payload]
标签: ruby-on-rails postgresql xmlhttprequest ruby-on-rails-5 gojs