0

私は次のものを持っています

class Item < ActiveRecord::Base
    after_create TellMe
end

class TellMe
  def self.after_create(model)
end

これに似たことができるようにしたいと思います:

i=Item.new :name => 'my test name'
i.send(:TellMe.after_create)

パブリック メソッドで send を呼び出す方法に似ていますか? できるみたいです

i.instance_eval 'TellMe.after_create(self)'

しかし、少し醜く感じます(とりわけ)

4

1 に答える 1

1

コールバックをトリガーする唯一の方法は、条件を満たすイベント (この場合はアイテムの作成) を実行することです。

必要な回避策として、コールバックが行うこととまったく同じことを行う別のメソッドを作成するだけで、通常どおりアクセスできます

Class Item < ActiveRecord::Base

  def tellme(params)
    TellMe.function(params)
  end

end
于 2012-09-13T22:54:24.553 に答える