Ruby on rails Rails 3在未被调用之前

Ruby on rails Rails 3在未被调用之前,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,这是我的模型 app/controllers/registrations\u controller.rb app/models/registration_observer.rb class RegistrationObserver

这是我的模型

app/controllers/registrations\u controller.rb app/models/registration_observer.rb
class RegistrationObserver
…after_create操作工作正常,但after_destroy操作不正常。这只是基于名称的,对吗?将观察者中的动作命名为“销毁后”会将其链接到相应的控制器动作“销毁”否


我还在控制器和观察者操作中添加了puts语句。我正在将其连接到控制器动作OK,但不是观察者。

它不会将其链接到控制器动作destroy。它将其链接到模型

为了在销毁后执行
,您应该

@registration.destroy
您可以在保存后进行
回调,并具有相同的效果

  def after_save(registration)
    return unless registration.cancelled
    if registration.orientation != nil
      @orientation = registration.orientation
      open_orientation if seats_equal_zero == false
    end
  end

您可以查看以获取更多信息

Hmm…因此您可以在我上面的代码中看到我不想实际销毁它,我只是将取消标志设置为true。是否有其他方法可以让观察者对此动作做出反应。我应该创建一个新操作吗?因为您正在更新对象(注册),\u save
后将触发
,并且您可以使用
after\u save
来执行与取消检查后销毁中相同的操作
@registration.destroy
  def after_save(registration)
    return unless registration.cancelled
    if registration.orientation != nil
      @orientation = registration.orientation
      open_orientation if seats_equal_zero == false
    end
  end