0

私はモデルを持っているとします

class Model < ActiveRecord::Base
  has_many :other_models
end

プラグインや拡張機能など、他のコードが読み込まれると、この関係を変更したいと思います。クラスを再度開くだけでこれを試します:

class Model
  has_many :other_models, on_add: :method_on_add
end

しかし、それはうまくいきません。最初のリレーションのオプションのみを使用します。これを達成する方法はありますか?

4

1 に答える 1

6

メタプログラミングを行うことができます。コードの一部がロードされたとき。次のようにできます。

Model.class_eval do
  has_many :other_models
  # whatever you want to code
end

ここにメタプログラミングに関する優れたチュートリアルがあります

于 2012-12-29T09:04:17.417 に答える