Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails跳过模型中特定方法的更新回调_Ruby On Rails_Ruby_Ruby On Rails 4_Activerecord_Callback - Fatal编程技术网

Ruby on rails RubyonRails跳过模型中特定方法的更新回调

Ruby on rails RubyonRails跳过模型中特定方法的更新回调,ruby-on-rails,ruby,ruby-on-rails-4,activerecord,callback,Ruby On Rails,Ruby,Ruby On Rails 4,Activerecord,Callback,在我的学生模型中,我在更新后触发了一个方法,但问题是我必须在该方法中保存。这将导致无限递归循环: class Student < ActiveRecord::Base after_update :delete_inactive_student_schedules def delete_inactive_student_schedules if self.status_was == active and self.status == paused self.missing_s

在我的学生模型中,我在更新后触发了一个方法
,但问题是我必须在该方法中保存。这将导致无限递归循环:

class Student < ActiveRecord::Base

after_update :delete_inactive_student_schedules

def delete_inactive_student_schedules
  if self.status_was == active and self.status == paused
    self.missing_schedule_at = nil
    self.save!
    self.schedules.destroy_all
  end
end
class-Student

是否有方法在方法内保存后跳过更新回调?

您可以使用更新列更新列,而无需触发回调或验证

那么你的情况呢

if self.status_was == active and self.status == paused
  self.update_columns(:missing_schedule_at => nil)
  self.schedules.destroy_all
end