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 回答