ruby-on-rails - 如何跳过ActiveRecord回调?

标签 ruby-on-rails rails-activerecord

Possible Duplicate:
How can I avoid running ActiveRecord callbacks?

我有这样的模型

class Vote < ActiveRecord::Base  
    after_save :add_points_to_user

    .....
end

是否有可能以某种方式强制模型跳过调用 add_points_to_user什么时候保存的?可能类似于 ActiveRecord#deleteActiveRecord#destroy

最佳答案

对于 Rails 3,ActiveSupport::Callbacks为您提供必要的控制。我只是在数据集成场景中面临着同样的挑战,通常需要的回调需要被抛在一边。您可以集体重置回调,或使用skip_callback明智地禁用,如下所示:

Vote.skip_callback(:save, :after, :add_points_to_user)

..之后您可以在禁止 :add_points_to_user 的情况下对 Vote 实例进行操作

关于ruby-on-rails - 如何跳过ActiveRecord回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1342761/

相关文章:

sql - ActiveRecord:如果其中至少有一条记录不符合条件,则排除组

ruby-on-rails - rails 4 : Bootstrap-sass gem assets work on development but not on production

ruby-on-rails - 使用 AWS SES/SNS 接收电子邮件

ruby-on-rails - 覆盖 rails 3 中的默认脚手架生成器

ruby-on-rails - 如何禁用目录的 rails 延迟加载?

ruby-on-rails - 如何在 Rails 5 中为委托(delegate)方法定义自定义名称?

javascript - 调用rails内的javascript函数hidden_​​field_tag

ruby-on-rails - Rails 更改列类型并更新列值

ruby-on-rails - ActiveRecord bool 验证接受非 bool 值

ruby-on-rails - Rails 扩展 ActiveRecord::Base