javascript - 通过 Ajax 将 activerecord 对象发送到控制器操作
问题描述
Rails 5.2
我想做的是,从一个视图中,将一个 Ajax 请求传递给一个带有 activerecord 对象的控制器。我正在做以下事情;
我有一个 activerecord 对象:@book,具有以下属性:
@book.author
@book.title
@book.publisher
I have a view that includes a couple of frames, that displays several books, and when one of the books is selected, I would like to update the second frame with that book's information. 在这种情况下,我有以下 Ajax 代码:
$.ajaxSetup({
headers: {
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type: "POST",
url: "/books/5/",
data: JSON.stringify({
"book": <%= raw @book %>
}),
datavalue: 'html',
dataType: 'json',
contentType: "application/json; charset=utf-8",
remote: true
});
书籍控制器正在接收它,但是当我检查 params[:user] (通过从控制器方法将其输出到控制台)时,我看到它是以下字符串:
{"author"=>"Joe Smith", "title"=>"My Book", "publisher"=>"Local Press"}
我正在尝试将其转换为哈希或对象,如下所示:
book = JSON.parse(params[:book])
或者:
book = JSON.parse(book, object_class: OpenStruct)
但是书回来了为零。有任何想法吗?
解决方案
推荐阅读
- reactjs - React Thumbnail Preview when posting/ sharing links of URL
- javascript - Improving loop that tries different URL variations until match
- java - Method execution according to controller return
- java - How to create nested projection of one to many mapping in spring data jpa
- java - Save Value to List from Stream
- bash - 在 macOS 中,当我安装了 GNU 替代品后,如何获取原始 (BSD) 命令的手册(手册)页?
- vue.js - Vuejs,':'和'@'在vuejs中是什么意思?
- python - 登录网页并将表格导出为 CSV 文件
- c# - 请求特定数据返回所有关联实体而不使用 Include()
- r - 给定百分比,如何绘制堆积条形图?