我想使用instance_eval增强现有类.原始定义包含验证,需要存在某些字段,即:
class Dummy < ActiveRecord::Base
validates :field, :presence => true
end
现在,我想使用instance_eval(或任何其他方法,真的)将其更改为可选:
Dummy.instance_eval do
...
end
删除验证的正确语法是什么,因此该字段是可选的.我宁愿直接在模型层上这样做,而不是在控制器或视图中进行奇怪的攻击.实际上并不需要使用instance_eval,但据我所知,这通常是增强Rails中类的最佳方法.
编辑#1
总的来说,最初的类是gem的一部分,我不想Forking 它,也不想绑定到特定的发行版.一般原因并不重要.简单地编辑原始模型的后果比猴子修补要糟糕得多.