首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Ruby on Rails 開發從頭來(三十二):Rails 配置檔案深度解析

     編輯:Java 相關知識

執行環境機制

Rails 提供三種預設執行環境,各擁有獨立配置:

  • Development:詳細日誌、類別重載、錯誤完整回溯
  • Test:資料庫隔離、快速啟動、測試專用設定
  • Production:效能優化、快取開啟、錯誤頁面友善化

指定環境啟動

# WEBrick/Mongrel
ruby script/server -e development   # 或 test, production

# Apache + FastCGI / Passenger
SetEnv RAILS_ENV production  # 在虛擬主機設定環境變數

自訂環境

  1. 在 config/database.yml 新增區段(如 staging:)
  2. 在 config/environments/ 建立 staging.rb
  3. 啟動時指定 -e staging 或 RAILS_ENV=staging

資料庫連線配置

config/database.yml 使用 YAML 格式,三區段對應三環境:

development:
  adapter: mysql
  database: depot_development
  username: root
  password: 
  host: localhost

test:
  adapter: mysql
  database: depot_test
  username: root
  password: 
  host: localhost

production:
  adapter: mysql
  database: depot_production
  username: root
  password: prod
  host: wibble

多資料庫切換技巧

# 同環境不同資料庫
development:
  development_mysql:
    adapter: mysql
    database: depot_development
    host: localhost
  development_sqlite:
    adapter: sqlite3
    dbfile: db/depot.sqlite3

# 程式碼中切換
ActiveRecord::Base.establish_connection(:development_mysql)

環境配置檔案

config/environment.rb 為共用配置,啟動時再載入 config/environments/#{RAILS_ENV}.rb。

主要職責

  • 設定 Ruby 載入路徑($LOAD_PATH)
  • 建立共用資源(Logger、快取存儲等)
  • 提供框架與應用程式配置參數

標準載入路徑

# 自動加入載入路徑
test/mocks/#{RAILS_ENV}/      # 測試模擬物件優先覆寫
app/models/
app/controllers/
app/helpers/
app/apis/
components/
config/
lib/
vendor/
vendor/rails/*

應用程式級資源初始化

# environment.rb 內建初始化
RAILS_DEFAULT_LOGGER = Logger.new("log/#{RAILS_ENV}.log")
ActiveRecord::Base.logger = RAILS_DEFAULT_LOGGER
ActionController::Base.logger = RAILS_DEFAULT_LOGGER
ActionMailer::Base.logger = RAILS_DEFAULT_LOGGER

ActionController::Base.view_path = "app/views"
ActionMailer::Base.template_root = "app/views"

核心框架配置參數

詳細參數請參考 config/environment.rb 註解與 Rails API 文件,常用者包括:

  • config.cache_classes:生產環境設 true 避免類別重載
  • config.action_controller.perform_caching:啟用頁面/動作/片段快取
  • config.active_record.schema_format::ruby 或 :sql 控制 schema 匯出格式
  • config.time_zone:設定應用程式預設時區
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved