在Rails中,如何从JavaScript查询数据库以便保存查询值?

z9ju0rcb  于 2023-01-04  发布在  Java
关注(0)|答案(1)|浏览(142)

我想在javascript中查询我的书的ID,而不是从数据库中获取所有的书,例如:
我通常是这样做的:
在我的book控制器中,我对图书集合进行查询,然后通过一个变量将其传递给视图:

# books_controllers.rb
before_action :set_books
... 
def set_books
  @books = Book.all # here is my books collection
end

在表单视图中,我定义了一个变量来存储书籍集合,该变量位于books_info变量中:

#books/form
javascript:
   let books_info = #{@books.to_json.html_safe};

最后,扫描这些书,并与客户给我的身份证进行比较,以找到所述书的具体信息。

Array.from(books_info).forEach((element, index) => {
      if (element["book_id"] === client_book_id){
        new_book_id = element;
      }
    });

这样做的问题是,我在视图中折衷了所有图书信息
简单地说,我所寻找的是给定的客户端的id(client_book_id),以便在javascript中执行此操作

javascript:
  let client_book_id = #{Book.find(´client_book_id´).to_json.html_safe} # This not work but I try to got it.

如果你能帮助我,我将不胜感激。

blmhpbnm

blmhpbnm1#

1.将图书ID添加到URL的查询字符串中,例如?book_id=123

  1. Rails控制器读取ID,例如params[:book_id]
    1.控制器设置示例变量,例如@book = Book.find(params[:book_id])
  2. Rails视图使用.to_json设置JS变量,如问题中所示
    这只是一个应用程序设计,适合初学者。其他设计包括XHR(中级)或GraphQL(高级)。

相关问题