配置文件(config)
在Rails中,可以根据config/下的配置文件变更设定。
以「config.参数名 = 值」的形式设定
为了反映配置,有必要重启服务器
字符编码为UTF-8
主要的配置文件
--------------------------------------------
说明
application.rb 在所有的环境中通用的配置文件
environment/ 存储每个环境的配置文件的目录
development.rb 在开发环境中的配置文件
test.rb 测试环境中的配置文件
production.rb 在生产环境中的配置文件
initializers/ 存储其他初始化处理和配置信息等的目录
infiections.rb
mime_types.rb 在应用程序中可以利用的内容类型
secret_token.rb 为给cookie署名的标记信息
session_store.rb 为保存session的配置文件
locales/ 存储为对应国际化资源文件的目录
--------------------------------------------
数据库的配置文件(database.yml)
描述了在Rails中使用的数据库的配置
用YAML的形式描述
开发(development)、测试(test)、生产(production)3个环境
编辑可以连接的数据库
DB2
Firebird
Frontbase
MySQL
Openbase
Oracle
PostgreSQL
SQLite
SQL Server
Sybase
SQLite3
配置项目
adapter 连接的数据库种类 sqlite3
database 到数据库文件的路径 db/环境名.sqlite3
pool 连接的pool数 5
timeout 超时时间 5000
例
development: adapter: sqlite3 database: db/development.sqlite3 timeout: 5000 test: adapter: sqlite3 database: db/test.sqlite3 timeout: 5000 production: adapter: sqlite3 database: db/production.sqlite3 timeout: 5000
MySQL
配置项目
adapter 连接的数据库种类 mysql2
database 连接目标的数据库名 db/应用程序名_环境名
host 连接目标的服务器名或者IP地址。指定socket的情况下无效 localhost
post 连接目标的端口号。指定了socket的情况下无效 3306
socket Unix套接字的路径 /tmp/mysql.sock
username 连接到数据库的用户名 root
password 连接到DB的密码
encoding 明确的指定字符编码 utf8
pool 连接的pool数 5
timeout 超时时间 false
--------------------------------------------
应用程序类的刷新配置(cache_classes)
每次访问时是否刷新应用程序类
不刷新(缓存类)
cache_classes = true
刷新
cache_classes = false
默认的配置
development cache_classes = false
test cache_classes = false
production cache_classes = true
--------------------------------------------
缓冲保存目标的配置(cache_store)
config.cache_store = 保存目标
保存到memcached
config.cache_store = :mem_cache_store
对日志文件不添加颜色(colorize_logging)
保存到redis
config.gem "redis-store", :lib => "redis-store"
require "redis-store" # HACK
config.cache_store = :redis_store
--------------------------------------------
对日志文件不添加颜色
config.active_record.colorize_logging = false
--------------------------------------------
变为自动载入对象的路径指定(autoload_paths)
--------------------------------------------
从Rails3 开始autoload_paths的配置默认变为无效。
config.autoload_paths += %W(#{config.root}/目录名)
自动读取/lib文件以下的
config.autoload_paths += %W(#{config.root}/lib)
停止时间戳记的自动保存(record_timestamps)
--------------------------------------------
在网站名称等的应用程序中将通用的名称作为变量配置
config/application.rb module 模块名 class Application < Rails::Application config.变量名 = 值
module Mysite class Application < Rails::Application config.title = "网站的名称"
--------------------------------------------
Mysite::Application.config.title
日志等级(log_leval)
信息
config.log_leval = :info
调试
config.log_leval = :debug
默认的配置
环境 配置
development log_leval = :debug
test log_leval = :debug
production log_leval = :info
日志的输出目标(log_path)
--------------------------------------------
日志的输出目标
config.log_path = <日志的输出目标>
默认的配置
环境 配置
development log_path = log/#{environment}.log
test log_path = log/#{environment}.log
production log_path = log/#{environment}.log
--------------------------------------------
为了对应国际化的默认语言环境
i18n.default_locale = :en
config.i18n.fallbacks = true
--------------------------------------------
对日志文件不输出参数信息(config.filter_parameters)
onfig.filter_parameters += [参数]
Search: config.filter_parameters - GitHub
-------------------------------------------
对JavaScripts、stylesheets等静态文件服务器
config.action_controller.asset_host=“asset server”
-------------------------------------------
对JavaScripts、stylesheets等静态文件压缩(默认application.js application.css)
config.assets.precompile +=%w( application.js application.css bootstrap.min.css jquery-ui.css html5.js )
------------------------------------------
邮件服务器的配置
config.action_mailer.default_url_options = {:host => 'http://XXXXX.com'}
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => 'localhost',
:port => 25,
:domain => 'XXXX.com',
:openssl_verify_mode => 'none'
}