引伸自http://ruby-china.org/topics/3869, 我发现比如对某条记录做更新,加上一个 before_save,对某个字段做预处理,只有加上 self.some_field = 'blablabla'才起作用,直接 some_filed= 'blablabla' ,结果不会被正确保存。请问是何原因?
some_filed= 'blablabla' Ruby 解释器认为这是对本地变量赋值,而不是方法调用。 加上 self 就明确了
这里有更详细的解释: http://ruby-china.org/topics/2660
已经有点入魔了,导致最基本的变量赋值都给忽略了,切记切记!!!
这也太坑爹了吧
谢谢各位,懂了。。理解为局部域优先级大于外域。读取时局部没有相应变量,到外部读取。 赋值时直接对局部变量赋值了。再次感谢!