嘿,我目前正在做一个整合 Spree 和 Refinery 的项目。Spree 建议使用他们所谓的装饰器完成许多修改:
Refinery::Page.class_eval do
def autocomplete_label
title
end
attr_accessible :spree_taxon_id
has_one :spree_taxon
end
这工作正常。但是直接打开类和直接添加方法有什么区别呢?
class Refinery::Page
def autocomplete_label
title
end
attr_accessible :spree_taxon_id
has_one :spree_taxon
end
我可以理解,当类直到运行时才知道时,可以使用第一个(这个用例不需要)。还有其他区别吗?