我在我的rails应用中使用Sunspot,Solr-based search engine。
根据this Rails Cast episode on Search with Sunspot
:
Sunspot会自动索引任何新记录,但不会记录现有记录。我们可以通过运行:
告诉Sunspot重新编制现有记录rake sunspot:reindex
基本上应该重新索引整个模型。
但是,我有一个模型(TicketSubject
),其属性为category
,我希望每次对其{{1}进行编辑时重新索引ticket_subject
}}
我该如何解决这个问题?
答案 0 :(得分:1)
为什么不为此使用ActiveRecord回调,即after_update
?
<强> after_update()强> 在具有记录的现有对象上的Base.save之后调用。请注意,此回调仍包含在围绕保存的事务中。例如,如果此时调用外部索引器,则不会在数据库中看到更改。 http://api.rubyonrails.org/v2.3.8/classes/ActiveRecord/Callbacks.html#M001377
定义:回调挂钩到Active Record对象的生命周期,允许您在对象状态的更改之前或之后触发逻辑。 http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html