在Rails中我可以保存记录而不调用我的回调吗?

时间:2015-11-17 16:19:12

标签: ruby-on-rails activerecord callback rails-activerecord

当我my_record.save时,我可以通过参数或其他内容告诉记录不要将其称为回调吗?下面是我为我的对象设置的回调。

class Measurable < ActiveRecord::Base

   after_save :summarize_measurables_for_player

   # ...

   def summarize_measurables_for_player
     # ...   
   end

end

修改

此回调用于当某人更改可测量值时,然后计算Measurable_Type的首选值,然后将该值存储在另一个对象的列上。这使我可以更快地检索信息。但是,我不想在导入信息时调用它。因为它会在每次更改后汇总。导入所有信息然后在我想的时候总结所有值是一个更快的过程。

1 个答案:

答案 0 :(得分:3)

在您的情况下,我将attr_accessor添加到模型中,如果设置为true,则跳过此方法。

class Measurable < ActiveRecord::Base

   after_save :summarize_measurables_for_player, :unless => :skip_summarize

   attr_accessor :skip_summarize

   # ...

   def summarize_measurables_for_player
     # ...   
   end

end

然后在导入中,您可以在导入对象的属性中设置:skip_summarize => true