Rails不引人注目的javascript(UJS)ajax:在追加数据参数之前

我试图在通过ajax(通过Rails UJS)发送之前将一些参数附加到表单。

$(document).on("ajax:before",".form-example", function(event) { event.data = $(":hidden").serialize(); }); 

隐藏的输入不在表单中,因此我需要收集它们,序列化它们,并将它们添加到请求(这是一个PUT请求)。 但是,在上面的例子中,没有参数传递给服务器,我做错了什么? 如何使用隐藏输入的序列化值传递名为"items"参数?

考虑到这一点,实际上可以这样做,但你不使用事件,你修改表单本身(使用$(this) )。

所以像这样的东西可以工作:

 $(document).on("ajax:before",".form-example", function() { var form = $(this); form.append($('',{name: 'hidden_values',value: $(":hidden").serialize()})); }); 

您应该能够使用params[:hidden_values]访问rails操作中的数据。