The Rails Way 第一章笔记

Chapter 1 : Rails Environments and Configuration

这一章 主要讲基本的配置一些东西,我随便的做了些笔记,加上了一些补充说明。希望对新手有帮助。或者你可以当作Tips来看:)Enjoy.

一:Enviroment Mode
Rails 有三种models:test,development,production,默认为development,你可以通过RAILS_EVN指定特定的环境
譬如
启动webrick
[code]ruby script/server webrick -p 80 -e production[/code]
启动mongrel
[code]mongrel_rails start -p 80 -e production [/code]
执行rake
[code]rake db:migrate RAILS_EVN=production[/code]

二:Rails Gem Version
/config/environment.rb
[code]
RAILS_GEM_VERSION = '2.0.2' unless defined? RAILS_GEM_VERSION
[/code]

升级rails
[code]
raile rails:update
[/code]
会更新config,javascript,script,如果你只想升级单个请执行
[code]
rake rails:update:configs
rake rails:update:javascripts
rake rails:update:scripts
[/code]

三:Initializer
Rails 2 新增了initializers目录,在启动的时候会加载该目录的文件。这样就不需要把一大陀的东西全塞在environment里了。

四:Default Load Paths
/vendor/rails/railties/lib/initializer.rb
[code]
def default_load_paths
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
components
config
lib
vendor
).map { |dir| "#{root_path}/#{dir}" }.select { |dir| File.directory?(dir) }

paths.concat builtin_directories
end
[/code]

这个是rails默认加载的path,如果你想加载自己的代码到path中,可以配置在environment.rb中
/config/environment.rb

[code]
Rails::Initializer.run do |config|
#....
config.load_paths += %W(
vendor/BlueCloth-1.0.0/lib
vendor/RedCloth-3.0.4/lib
vendor/rubypants-0.2.0/lib
vendor/rubyzip-0.5.12/lib
vendor/uuidtools/lib
)
#.....
end
[/code]

这样的话,你就可以把gems直接放到vendor目录下了,不需要用户去安装了。
[img]http://mmm.iteye.com/upload/picture/pic/6989/2f16cbb8-7cf1-33d2-8c55-dcec696d855b.gif[/img]

五:Builtin Rails Info
在本机上你可以通过http://localhost:port/rails/info/properties查看,在代码中你可以通过
[code]
@properties = Rails::Info.properties
[/code]
获取。

举个例子:
简单的显示如下:
[code]
<ul>
<%@properties.each_with_index do |p,index|%>
<li><%=p[0]%> : <%=p[1]%></li>
<%end%>
</ul>
[/code]

六:Configuration
上面已经提过一些,这里我们再说一些
rails 默认加载如下的framework
[code]
def default_frameworks
[ :active_record, :action_controller, :action_view, :action_mailer, :active_resource ]
end
[/code]

你可以忽略你不需要加载的
[code]
config.frameworks -= [:action_mailer ]
[/code]


七:Log-Level Override
production模式下默认使用info,其他使用debug,你可以修改如下配置
[code]
config.log_level = :debug
[/code]

八:ActiveRecord Session Store
rails 2 默认是保存在客户端的,如果你想的话,可以采用其他的方式,譬如数据库存储
[code]
config.action_controller.session_store = :active_record_store
[/code]

Note:
如果你还没有表,请使用
[code]
rake db:sessions:create
rake db:migrate
[/code]
生成表结构


九:Observers
[code]
config.active_record.observers = :cacher, :garbage_collector
[/code]
在enviroment.rb中,observers 一般配置为cache 的sweeper,或者gc等


十:Automatic Class Reloading
production 默认是cache_classes的,如果你想auto reload,请修改/config/environments/production.rb
[code]
config.cache_classes = false
[/code]

development 默认为false,即当代码有变化时自动重新加载

十一:查看已加载的path
[code]
ruby script/console
Loading development environment (Rails 2.0.2)
>> $:
#....results...........
[/code]

十二:Logging
rails 中默认有个全局变量RAILS_DEFAULT_LOGGER,你可以通过defined?查看是否定义
[code]
unless defined?(RAILS_DEFAULT_LOGGER) do
#create new logger ...
end
[/code]

十三:Rails Log Files
清除log日志
[code]
rake log:clear
[/code]

PS:同样也有tmp:clear等,用来清除tmp


十四:Log File Analysis
[url]http://rails-analyzer.rubyforge.org/pl_analyze/[/url]
+
[url]http://nubyonrails.com/articles/a-hodel-3000-compliant-logger-for-the-rest-of-us[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值