我有一个模型作者与模型书有一个has_many关系。书籍由sunspot索引,并有一个索引字段:author_name,它提取与之关联的作者的名称。
我有一个表单,允许您通过
同时创建作者和添加书籍accepts_nested_attributes_for :book
我的问题是,在使用图书创建新作者时,新图书未正确编入索引。我相信,当创建书籍并调用after_save太阳黑子索引时,相关的新作者尚未提交,因此其名称不存在。
最佳解决方案是什么?我已经尝试在作者模型上添加一个after_commit钩子来索引所有相关的书籍,但是当该方法遍历书籍时,它们的ID /关联是零。
答案 0 :(得分:0)
我必须在父模型上添加一个after_save挂钩来查找所有子节点并保存它们。在after_save中,我不得不根据ID重新查找所有书籍 - 否则他们的相关作者是零。