RAILS类的装载程序

RAILS类的装载程序

  在纯RUBY中,一个脚本文件不需要用特殊的方式命名去匹配他的内容。然而,在RAILS中,你必须注意,总是在RUBY件名和文件所包含的类有个很直接的关联。RAILS充分利用RUBY所提供的无效常量回收机制。当RAILS在代码偶尔遇到一个未定义的常量,它使用一个基于文件命名协定的类加载器例程来寻找来加载所需的RUBY脚本。

  类加载器怎样知道去哪搜寻?我们已经在本章稍早讨论initializer.rb的启动过程规则的时就覆盖说明它 。RAILS有装载路径这概念,默认装载路径包括基本目录(你认为在你的程序会增加代码的任何地方)。默认的装载路径的方法命令会显示RAILS在他的默认路径怎样搜寻目录。我们将剖析这个方法的源代码并且解释每个加载行为的原因。

  test/mocks目录(在第17章”Testing”会广泛的涉及到)可以使你去忽略标准RAILS类行为。

paths = ["#{root_path}/test/mocks/#{environment}"]

# Add the app’s controller directory

paths.concat(Dir["#{root_path}/app/controllers/"])

# Then components subdirectories.

paths.concat(Dir["#{root_path}/components/[_a-z]*”])

# Followed by the standard includes.

paths.concat %w(

app

app/models

app/controllers

app/helpers

app/services

app/apis

components

config

lib

vendor

).map { |dir| “#{root_path}/#{dir}” }.select { |dir|

File.directory?(dir) }

paths.concat Dir["#{root_path}/vendor/plugins/*/lib/"]

paths.concat builtin_directories

end

想要看你的项目装载路径?只要在控制台如下输入$:  :

$ console

Loading development environment.

>> $:

  • ð [”/usr/local/lib/ruby/gems/1.8/gems/ … # about 20 lines of output

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值