Rails 6 嵌套形式茧不会保存子对象

Rails 6 nested form cocoon won't save sub-objects

我正在尝试为 Book 对象实现一个嵌套表单,它可以有多个 BookAuthor 对象。我已按照 this 教程使用 Rails 6 中的 Cocoon gem 执行此操作,但它不起作用。表单本身在前端运行良好,可以正确地添加和删除 BookAuthor 字段。服务器收到的参数包含正确数量的 BookAuthor 属性,但这些子对象不会写入数据库,即使主 Book 对象写入了也是如此。我已经能够让协会正常工作了。

javascript 或 rails 控制台都没有错误输出。

注意:忽略 book.rb 中的 include Hashid::Rails,我已经尝试过使用和不使用它,但同样的事情发生了。此外,请忽略 book.rb 中对 Chapter 对象的任何引用,因为它们还不是表单的一部分。

下面是相关模型、视图和控制器的代码。模型文件还包含该模型的 table 架构。如果您需要更多代码,请告诉我。

服务器接收的参数(从服务器控制台):https://pastebin.com/nxAXkD3T

book.rb: https://pastebin.com/Xtxf52eT

book_author.rb: https://pastebin.com/miFhb5wR

_form.html.haml: https://pastebin.com/YaW1gRUe

_book_author_fields.haml: https://pastebin.com/FJw7CR2f

books_controller.rb: https://pastebin.com/0NYsCc7x

application.js: https://pastebin.com/rZLpe0iS

宝石文件:https://pastebin.com/TcGrQ9f5

Gemfile.lock: https://pastebin.com/apCMxNkJ

package.json: https://pastebin.com/9U7mB2NK

yarn.lock: https://pastebin.com/H3AzG3Bi

不需要添加attr_accessor :book_authors_attributes。在你的 book.rb 中。删除它。

这会自动添加一些 rails 魔法。