我可以为任意模型方法设置Active Record回调吗?

时间:2012-06-19 17:38:09

标签: ruby-on-rails rails-activerecord

我可以为任意模型方法设置Active Record回调吗?我可以看到它有用,类似于控制器中的before_filter。

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:1)

Active Model Callbacks为任何类提供了一个接口,可以像回调一样使用Active Record。你可以在这里查看http://api.rubyonrails.org/classes/ActiveModel/Callbacks.html

这适用于模型中的任意方法。这是一段代码片段。

class MyModel
  extend ActiveModel::Callbacks
  define_model_callbacks :initialize, :only => :after

  after_initialize :update_info

  def initialize
    run_callbacks :initialize do
      # Your create action methods here
    end
  end

  def update_info
    puts 'info'
  end
end

这将在完成“initialize”方法后调用“update_info”方法。