unshiu

最近の更新履歴

開発ルール‎ > ‎

アプリケーション設定ファイルルール

アプリケーション設定(YAML)とは

サービスや環境によって可変となりえる値を外部ファイル上に定義して、アプリケーション内部ではその値を参照する仕組みです。

仕組み

以下を参照

RAILS_ROOT/lib/app_resource.rb

設定ルール

以下のディレクトリ内の プラグイン名.yml ファイルに設定を記述してください。このディレクトリ以下にあるファイルは自動的にプロパティ設定ファイルとしてロード対象となります。

RAILS_ROOT/config/unshiu 

案件用の拡張部分で設定をする場合は 案件名.yml ファイルを作成します。

設定例

ymlファイル側

common: &common
portal_friend_list_size: 3
friend_list_size: 5

development:
hoge: foo
<<: *common

test:
hoge: bar
<<: *common

production:
hoge: fuge
<<: *common

共通部分は、common 以下に書き、実行環境毎に設定されるパラメータは各実行環境以下に書くこととします。もし実行環境を増やしている場合、その場合は適時、実行環境を増やす必要があります。

アプリケーション側

以下どちらでもアクセス可能です。可読性のためにはシンボルでの指定を推奨します。

AppResources["base"]["friend_list_size"]
AppResources[:base][:friend_list_size]

定義ファイル分けルール

アプリケーションは以下の yml ファイルを持ちます。

  • init.yml
  • プラグイン名.yml

init.yml

アプリケーションではじめに設定しなければならない設定類です。

具体例)

  • ドメイン名
  • セッションキー

特に secret と secret_key はCSRF対策用にいれられているため、ファイルの支持に従い必ずユニークで推測されないものに変更してください。

プラグイン.yml

各プラグイン機能特有の機能設定に利用します。

mng に関して

管理画面などのリストサイズは利用しているのは各プラグインなのですが、個別に変更できるようにする利点がないため mng.yml でデフォルトサイズをもち、それ以外の値を利用する場合は別途プラグインごとに定義することとします。

設定対象とするもの

以下のルールに当てはまるものを対象とします。

  • 1ページ上に表示する項目数
  • ファイルのアップロード先ディレクトリの指定
  • ドメイン
  • メールアドレス
  • IPアドレス
  • 文字列長、ファイルアップロード最大容量などのvalidateに関連する値

設定対象にしてはないらないもの

以下のものをアプリケーション設定(YAML)で定義することは禁止です。

  • 一般的にgettextで置き換えられる文字列
    • ユーザやアルバムなどサービスによって可変になる可能性がある文字列
    • エラー文言
  • モデル中のステータスの値などロジックの変更をともなわないで可変にはならない定数
    • Model中に定義値として設定する

参照