Rails 5.2
Я хотел бы, с точки зрения, передать Ajax-запрос контроллеру с объектом activerecord. Я делаю следующее:
У меня есть объект activerecord: @book со следующими атрибутами:
@book.author
@book.title
@book.publisher
У меня есть представление, включающее пару кадров, которое отображает несколько книги когда выбрана одна из книг, я хотел бы обновить второй фрейм информацией этой книги. В этом представлении у меня есть следующий код 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
});
Контроллер books получает его, но когда я проверяю params [: user] (выводя его на консоль из метода controller)Я вижу, что это следующая строка:
{"author"=>"Joe Smith", "title"=>"My Book", "publisher"=>"Local Press"}
Я пытаюсь превратить это в хэш или объект, например:
book = JSON.parse(params[:book])
Или:
book = JSON.parse(book, object_class: OpenStruct)
Но книга возвращается как ноль. Есть идеи?