require ‘file’
加载这个文件file前,需要有加载路径的上下文环境,如:
$:.unshift File.dirname(__FILE__).sub('controller','lib')
加载路径,是默认ruby启动的时候会在这些路径里去寻找可以加载的类库。ruby加载路径放在一个变量$LOAD_PATH里,和$:指的都是同一个环境变量。
函数解释:
1、$:($LOAD_PATH)是Ruby读取外部文件的一个环境变量,和windows的环境变量是一个概念。Ruby会在这个环境变量的路径中读取需要require的文件,如果在环境变量中找不到自己想要的文件,就会报LoadError错误。
2、__FILE__是PHP的魔术常量之一,指文件的完整路径和文件名,即当前'controller'文件所在目录的相对位置。
3、dirname(),返回路径中的目录部分,得到的结果是该文件(目前访问的文件'controller')基于服务器的绝对路径。
4、str.sub('controller','lib') ,在str副本上将找到的第一个匹配字符(串)用lib替换,并返回。
还有一种用法是:str.sub(pattern) {|match| block } => new_str
puts "abcde789".sub(/d/){|c| 'a'},找到的字符d用|c|表示,可以替换成a字符
gsub方法
和sub的区别在于所有匹配的地方都会被替换,而不只是第一个。
5、$:.unshift($LOAD_PATH.unshift )是把上面得出的绝对路径加到现在已经存在所有环境变量之前。