require的搜索路径在rails是跟平常不同的,先去搜索model, controller之类,最后才去搜索gems。
如果一旦有某个自己的类与gems里的名字相同,那么就麻烦了,gems里就引用不到了。
例如:有一个twitter的model,那么require "twitter"一定是先得到这个model,而gems里的twitter则引用不到了,会出现种种奇怪的问题。
而在irb里使用又是正确的,很难查找问题。
所以在命名的时候一定要注意。
如果一旦有某个自己的类与gems里的名字相同,那么就麻烦了,gems里就引用不到了。
例如:有一个twitter的model,那么require "twitter"一定是先得到这个model,而gems里的twitter则引用不到了,会出现种种奇怪的问题。
而在irb里使用又是正确的,很难查找问题。
所以在命名的时候一定要注意。
本文详细探讨了Rails框架中require机制的工作原理,特别是在类加载路径上的特殊行为。当Rails遇到同名类时,如何优先加载应用程序内的类而不是gem中的类,并由此可能导致的问题。
1094

被折叠的 条评论
为什么被折叠?



