我想通过一个模块在模型的方法上“添加”一些代码,当它被包含在内时。我想我应该使用 alias_method_chain,但我不知道如何使用它,因为我的“别名方法”是以“=”符号结尾的方法之一:
class MyModel < ActiveRecord::Base
  def foo=(value)
    ... do stuff with value
  end
end
所以这就是我的模块现在的样子:
module MyModule
  def self.included(base)
    base.send(:include, InstanceMethods)
    base.class_eval do
      alias_method_chain 'foo=', :bar
    end
  end
  module InstanceMethods
    def foo=_with_bar(value) # ERROR HERE
      ... do more stuff with value
    end
  end
end
我在函数定义上遇到错误。如何解决这个问题?