art*_*sow 0 activerecord ruby-on-rails ruby-on-rails-3
假设,我有一个模型
class Model < ActiveRecord::Base
has_many :other_models
end
Run Code Online (Sandbox Code Playgroud)
当加载一些其他代码时,例如一些插件或扩展我想修改这种关系.我通过重新打开课程来尝试这个:
class Model
has_many :other_models, on_add: :method_on_add
end
Run Code Online (Sandbox Code Playgroud)
但这不起作用.它仅使用第一个关系的选项.任何想法如何实现这一目标?
你可以做元编程; 当你的一些代码加载时; 你可以这样做.
Model.class_eval do
has_many :other_models
# whatever you want to code
end
Run Code Online (Sandbox Code Playgroud)
这是一个关于metaprogrramming的好教程
| 归档时间: |
|
| 查看次数: |
182 次 |
| 最近记录: |