在太阳黑子中自动索引子模型(包含要求保存父级的字段)

时间:2011-09-03 00:33:14

标签: ruby-on-rails-3 sunspot

我有一个模型作者与模型书有一个has_many关系。书籍由sunspot索引,并有一个索引字段:author_name,它提取与之关联的作者的名称。

我有一个表单,允许您通过

同时创建作者和添加书籍
accepts_nested_attributes_for :book

我的问题是,在使用图书创建新作者时,新图书未正确编入索引。我相信,当创建书籍并调用after_save太阳黑子索引时,相关的新作者尚未提交,因此其名称不存在。

最佳解决方案是什么?我已经尝试在作者模型上添加一个after_commit钩子来索引所有相关的书籍,但是当该方法遍历书籍时,它们的ID /关联是零。

1 个答案:

答案 0 :(得分:0)

我必须在父模型上添加一个after_save挂钩来查找所有子节点并保存它们。在after_save中,我不得不根据ID重新查找所有书籍 - 否则他们的相关作者是零。