ruby-on-rails – 如何在Mongoid文档上跳过回调?

我的问题类似于这一个How to skip ActiveRecord callbacks?,而不是AR我使用Mongoid,似乎在目前的Mongoid版本中还没有实现,所以我想知道应该是一个优雅的解决方案来实现它。 (如有必要)。
是的你可以!

Mongoid建立在ActiveModel上,ActiveModel具有skip_callback function.您可以使用skip_callback,如下所示:

# skip the callback
MyModelClass.skip_callback(:save, :before, :ensure_foo_is_not_bar)

my_model_instance.update_attributes :foo => 'bar'

# restore the callback for future calls
MyModelClass.set_callback(:save, :before, :ensure_foo_is_not_bar)

我正在使用这个没有一个大的应用程序的搭便车。有关更多信息,请参阅Jeff Kreeftmeijer发表的博客文章:

http://jeffkreeftmeijer.com/2010/disabling-activemodel-callbacks/

翻译自:https://stackoverflow.com/questions/3046919/how-to-skip-callbacks-on-mongoid-documents

转载注明原文:ruby-on-rails – 如何在Mongoid文档上跳过回调?