我正在使用Spree,Spree有一个叫做Order类似的类:
module Spree
class Order
# class definition.
end
end
Run Code Online (Sandbox Code Playgroud)
在我自己的应用程序中,我一直在自定义Order:
Spree::Order.class_eval do
# customisations
end
Run Code Online (Sandbox Code Playgroud)
我的问题是,我可以简单地这样做:
module Spree
class Order
# My own customisations.
end
end
Run Code Online (Sandbox Code Playgroud)
这有什么缺点吗?基本上,我想避免使用class_eval.
Benjamin,class_eval如果现有类不存在或未加载,则重新打开类不会通知您(但会引发错误)。
但是如果你有测试覆盖率,我猜重新开课应该是安全的?
有关更详细的说明,请参阅/sf/answers/63035591/。