假设,我有一个模型
class Model < ActiveRecord::Base
has_many :other_models
end
当加载一些其他代码时,例如一些插件或扩展,我想修改这个关系。我通过重新打开课程来尝试这个:
class Model
has_many :other_models, on_add: :method_on_add
end
但这不起作用。它仅使用第一个关系的选项。任何想法如何做到这一点?
假设,我有一个模型
class Model < ActiveRecord::Base
has_many :other_models
end
当加载一些其他代码时,例如一些插件或扩展,我想修改这个关系。我通过重新打开课程来尝试这个:
class Model
has_many :other_models, on_add: :method_on_add
end
但这不起作用。它仅使用第一个关系的选项。任何想法如何做到这一点?
你可以做元编程;当你的一些代码被加载时;你可以做如下。
Model.class_eval do
has_many :other_models
# whatever you want to code
end
这是一个关于元编程的好教程