Ruby on Railsアプリケーションにおいてconfig/settings.ymlは、アプリケーション全体の設定を管理するために使用されるYAML形式のファイルです。このファイルを使用することで、アプリケーションの設定を一箇所に集約し、環境変数やハードコードされた値に依存しないようにすることができます。
settings.yml
の主な特徴と利用方法
設定の中央集権化
settings.yml
はアプリケーションの様々な設定値を一箇所にまとめるために使用されます。これにより、設定値の管理が容易になり、コード内でのハードコードを避けることができます。
環境固有の設定
通常、アプリケーションは開発、テスト、本番など複数の環境で動作します。settings.yml
を使用すると、これらの異なる環境に対して固有の設定を行うことができます。
YAML形式
YAML(Yet Another Markup Language)は、データを階層的かつ読みやすい形式で表現するためのデータシリアライゼーション言語です。settings.yml
ファイルはこの形式で書かれており、編集が容易で理解しやすいです。
アクセスと使用
このファイル内で定義された設定は、アプリケーション内の異なる部分から簡単にアクセスできます。多くの場合、RailsアプリケーションではRails.application.config_for(:settings)
を使用してこのファイルから設定を読み込みます。
使用例
# 基本的なアプリケーション設定
app:
name: "MyApp"
timezone: "Asia/Tokyo"
language: "ja"
# メール関連の設定
email:
smtp_host: "smtp.example.com"
smtp_port: 587
username: "user@example.com"
password: "password123"
from_address: "noreply@example.com"
# データベース設定(本番環境用)
production:
database:
adapter: "postgresql"
host: "prod-db.example.com"
username: "prod_user"
password: "prod_password"
database_name: "myapp_production"
# 外部APIの設定
external_services:
payment_service:
api_key: "1234567890abcdef"
secret: "secret12345"
analytics_service:
tracking_id: "UA-XXXXX-Y"
# 機能フラグ
features:
enable_signup: true
enable_beta_features: false
maintenance_mode: false
# セキュリティ関連の設定
security:
session_timeout: 3600 # セッションタイムアウト(秒)
password_policy:
min_length: 8
require_uppercase: true
require_numbers: true
require_special_chars: false
# その他のカスタム設定
custom:
file_upload_limit: 10MB
support_email: "support@example.com"