Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将数组从js传递到控制器_Javascript_Ruby On Rails_Ruby_Backbone.js - Fatal编程技术网

Javascript 如何将数组从js传递到控制器

Javascript 如何将数组从js传递到控制器,javascript,ruby-on-rails,ruby,backbone.js,Javascript,Ruby On Rails,Ruby,Backbone.js,我的javascript文件app/assets/javascript/pages/books\u page.js中有一个数组: var booksPage = Backbone.Model.extend({ defaults: { authors: [] } ... 如何将其作为参数传递给控制器。我的控制器的路径是app/controllers/books\u controller.rb 我想我可能需要一个ajax请求,并尝试了以下操作,但不起作用: $.ajax({

我的javascript文件
app/assets/javascript/pages/books\u page.js
中有一个数组:

var booksPage = Backbone.Model.extend({
  defaults: {
    authors: []
  }
  ...
如何将其作为参数传递给控制器。我的控制器的路径是app/controllers/books\u controller.rb

我想我可能需要一个ajax请求,并尝试了以下操作,但不起作用:

$.ajax({
        type: "post",
        url: "/books_controller",
        data: { list_authors: this.get('authors') },
      });
具体来说,我不确定url需要是什么。非常感谢你在这里的帮助。谢谢。

键入:“POST”,
url:`/books/${this.id}`、//或'/books/'+this.id,
数据:{
_方法:“放”
}
这将把您路由到
BooksController#update
。您还需要将
\u方法
条目合并到数据对象中


“注意:由于使用GET和POST以外的HTTP方法提交表单在浏览器中不受广泛支持,因此所有其他HTTP方法实际上都是使用_method参数中指定的方法通过POST发送的。Rails会自动检测并对此进行补偿。”——

您可以使用
JSON.stringify
,并从Controller
JSON.parse(params)
解析它

主干(和jQuery)应该为您完成所有繁重的工作。在模型中设置:

var booksPage = Backbone.Model.extend({
  urlRoot: '/books',
  ...
});
然后调用实例将数据发送到服务器:

// Get or create `books` as a `booksPage` instance as usual...
// Then make some changes to `books` using `books.set(...)`...
books.save();

为什么不直接使用
类型:'put'
?@muistooshort这是一项古老的工作,它深入到Rails中,以解决浏览器支持不足的问题。@muistooshort它至少在Rails中被引用过!但是您没有使用
@muistooshort shhh,不要让Rails知道!“在分析发布的数据时,Rails将考虑特殊的_方法参数”。
\u方法
用于POST请求,而不仅仅是表单提交。举个例子,一个
remote:true
表单发送回一个AJAX请求。但是url呢???@Jadoo我不知道你的url,只要确保传递正确的参数并正确获取它们就可以了。
// Get or create `books` as a `booksPage` instance as usual...
// Then make some changes to `books` using `books.set(...)`...
books.save();