我有一个问题,使用acts_as_textiled和has_foreign_language插件在一起。在rails模型中扩展现有的属性获取器
的TextElement我在我的应用程序模型
class TextElement < ActiveRecord::Base
has_foreign_language :value
acts_as_textiled :value
HasForeignLanguage
def has_foreign_language(*args)
args.each do |field|
# Define the Getter
define_method(field.to_s) do
.
.
.
ActsAsTextiled
def acts_as_textiled(*attributes)
.
.
.
attributes.each do |attribute|
define_method(attribute) do |*type|
.
.
.
这两个插件都使用define_method,以及哪种方式我在TextElement中调用mixin,后者覆盖之前定义的getter。
有没有办法保存现有的getter并在新定义的getter中调用它?类似于使用超级如果他们被遗传。
我已经分出了这些插件,所以这里都是公平的游戏。
所有帮助表示赞赏。
你知道这里发生了什么吗? alias_method_chain的文档非常混乱。 –
请谷歌为alias_method_chain,它有什么解释负载 – Julik