Ruby的类成员作用域与self

请考虑一下代码

结果为

arst
arst
#<NoMethodError: private method test3' called for Test:Class>
#<NoMethodError: private method
test' called for #<Test:0x2c28060>>

类方法Test.test是不受作用域修饰符private影响的,可能原因在于self.的声明方式其实只是class<<self的语法糖。

Rails错误LoadError Expected x.rb to define X

今天将代码部署到服务器上之后出现了这个奇怪的错误,经过删除gems重装之后问题依旧,最后查找资料,发现可能是 requireclass 之间的问题,最后在今天写的代码中发现了我在某个model的文件开头require了一个包。将require移入class定义内该问题解决。
原来代码如下:

修改后:

这个问题产生的原因我还不是非常清楚,难道和ruby的语法或者是内部运行机制和rails有冲突么?
这个问题在Rails的BUG列表中依然存在争议,目前还没有被彻底解决


2007-12-11更新

今天在我更新了服务器后,服务器上又出现了这个问题,但这次换了一个文件,变成了account.rb。这台服务器上装的是CentOS3,而另外一台同步更新的Windows2003服务器,则没有出现这个情况。多次修改找不出原因也不能解决问题,最后通过重启服务器解决了问题……

重新看了Rails Trac上的问题,发现情况并不是那么简单,很多条件可以造成这个错误,而问题的解决也是非常奇怪,比如有个人出现错误后,将某个设置从true改为了false,便正常了,然后他又把设置改回true,但是错误就没有了。