Автоматическая индексация дочерней модели в солнечном пятне (с полями, требующими сохранения родителя) - PullRequest
0 голосов
/ 03 сентября 2011

У меня есть модель Author с отношением has_many к модели Book. Книги индексируются с помощью солнечного пятна и имеют индексированное поле: имя_пользователя, в котором указывается имя автора, связанного с ним.

У меня есть форма, которая позволяет вам создавать автора и одновременно добавлять книги через

accepts_nested_attributes_for :book

Моя проблема в том, что при создании нового автора с книгами новые книги не индексируются правильно. Я считаю, что когда книги созданы и индекс солнечного пятна after_save вызван, связанный новый автор еще не был зафиксирован, и поэтому его имя не существует.

Какое лучшее решение для этого? Я попытался добавить хук after_commit в модели автора для индексации всех связанных книг, но когда этот метод просматривает книги, их идентификаторы / ассоциации равны нулю.

1 Ответ

0 голосов
/ 10 сентября 2011

Мне пришлось добавить хук after_save на родительскую модель, чтобы найти всех детей и сохранить их.Внутри этого after_save мне пришлось пересмотреть все книги на основе идентификатора - в противном случае их связанный автор был nil.

...