这里 before_save 是类方法啊,为什么 new.instance_eval 一个实例方法可以调用的?
http://stackoverflow.com/questions/44715/why-do-ruby-setters-need-self-qualification-within-the-class
找到一个合理的说法,就是如果不使用 self.attr= 来显式的调用 attr=() 方法的话,就没办法实现在方法内部定义本地变量的功能了,因为按照 ruby 的方法寻找,最后会到 method_missing。抛出异常。