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

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/

http://stackoverflow.com/questions/3046919/how-to-skip-callbacks-on-mongoid-documents

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:ruby-on-rails – 如何在Mongoid文档上跳过回调?