我正在使用基于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模型中,该模型处理' payload' :
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
端
我已将bracket_params包含在私人设置中
def bracket_params
params.require(:tournoi).permit(:payload)
end
尝试使用不同的方法来发布有效载荷没有真正起作用,会感谢一些帮助,以了解我出错的地方,我得到一个参数丢失或空:/。
答案 0 :(得分:0)
@DezzH查看我的最新提交来自我的回购https://github.com/fabriziobertoglio1987/sprachspiel/tree/feature/purchase-system我刚刚使用coffescript构建类似的东西..提交包括我的工作描述
基本上我想到的是,post
请求不会传递网址中的参数,因此在请求中找不到它们很容易,但您可以在网络选项卡中查看
从我传递的图像中可以看出
createPurchase: ->
$.ajax
url: "/products"
method: "POST"
dataType: "json"
data: { items: {product_id: '1', name: 'test' }}
error: (jqXHR, textStatus, errorThrown) ->
console.log "AJAX Error: #{textStatus}"
success: (data, textStatus, jqXHR) ->
console.log "Successful AJAX call: #{data}"
console.log data
然后我在控制器中设置了一个binding.pry,我可以在那里看到我的参数