我想在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.
如果你能帮助我,我将不胜感激。
1条答案
按热度按时间blmhpbnm1#
1.将图书ID添加到URL的查询字符串中,例如
?book_id=123
params[:book_id]
1.控制器设置示例变量,例如
@book = Book.find(params[:book_id])
.to_json
设置JS变量,如问题中所示这只是一个应用程序设计,适合初学者。其他设计包括XHR(中级)或GraphQL(高级)。