簡體   English   中英

如何將數組從js傳遞到控制器

[英]How to pass array from js to controller

我的javascript文件app/assets/javascript/pages/books_page.js有一個數組:

var booksPage = Backbone.Model.extend({
  defaults: {
    authors: []
  }
  ...

如何將其作為參數傳遞給我的控制器。 我的控制器的路徑是app/controllers/books_controller.rb嗎?

我想我可能需要ajax請求並嘗試了以下操作,但它不起作用:

$.ajax({
        type: "post",
        url: "/books_controller",
        data: { list_authors: this.get('authors') },
      });

具體來說,我不確定該URL是什么。 您的幫助將不勝感激。 謝謝。

骨干(和jQuery)應該為您完成所有繁重的工作。 在模型中設置urlRoot

var booksPage = Backbone.Model.extend({
  urlRoot: '/books',
  ...
});

然后在實例上調用save將數據發送到服務器:

// Get or create `books` as a `booksPage` instance as usual...
// Then make some changes to `books` using `books.set(...)`...
books.save();
type: 'POST', 
url: `/books/${this.id}`, // or '/books/' + this.id,
data: {
  _method: 'put'
}

這會將您路由到BooksController#update 您還需要將_method條目合並到數據對象中。

“注意:由於跨瀏覽器不支持使用GET和POST以外的HTTP方法提交表單,因此,所有其他HTTP方法實際上都是通過POST發送的,方法是_m​​ethod參數中指定的預期方法。Rails會自動檢測並對此進行補償。” - 在Rails中使用JavaScript

您可以使用JSON.stringify ,並從Controller JSON.parse(params)解析。

$.ajax({
      type: "post",
      url: "/books_controller",
      data: { list_authors: JSON.stringify(this.get('authors')) }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM