如何在类方法上使用ActiveModel回调?

时间:2014-04-06 20:14:13

标签: ruby-on-rails activemodel

我想在每个类方法之前执行一个方法。是否可以使用ActiveModel回调执行此操作,还是必须使用元编程?

我试过了:

class Image
  extend ActiveModel::Callbacks

  define_model_callbacks :create
  before_create :set_base_uri

  def self.create
    run_callbacks :create do
      ..my_code..
    end
  end

  def set_base_uri
    ..my_code..
  end
end

当我致电Image.create时,我得到了

  

未定义的方法`run_callbacks' for Image:Class

如果我将create更改为实例方法,则相同的代码可以正常工作。我查看了documentation,但他们没有提到类方法,ActiveModel是否支持类方法回调?

1 个答案:

答案 0 :(得分:0)

我认为回调可以正常工作,因为在实例级别调用了回调方法。使用alias_method可能有效。