管理者アカウントを提供するユーザー認証を備えたRailsアプリケーションに取り組んでいます。管理者アカウント内に、サイト全体の設定用のページを作成しました。
これらの設定を作成するための標準は何であるか疑問に思いました。たとえば、アプリケーション名の名前を変更したり、ヘッダーの色を変更したりする設定の1つが必要だとします。
私が探しているのは、基本的なプロセス/メソッド(必ずしも特定のコードではない)を誰かが説明することですが、それは素晴らしいことです!
管理者アカウントを提供するユーザー認証を備えたRailsアプリケーションに取り組んでいます。管理者アカウント内に、サイト全体の設定用のページを作成しました。
これらの設定を作成するための標準は何であるか疑問に思いました。たとえば、アプリケーション名の名前を変更したり、ヘッダーの色を変更したりする設定の1つが必要だとします。
私が探しているのは、基本的なプロセス/メソッド(必ずしも特定のコードではない)を誰かが説明することですが、それは素晴らしいことです!
データベーステーブルに保存する必要のない一般的なアプリケーション構成の場合、 configconfig.yml
ディレクトリ内にファイルを作成するのが好きです。あなたの例では、次のようになります。
defaults: &defaults
app_title: My Awesome App
header_colour: #fff
development:
<<: *defaults
test:
<<: *defaults
app_title: My Awesome App (TEST ENV)
production:
<<: *defaults
この構成ファイルは、config/initializersのカスタム初期化子からロードされます。
Rails 2.x:
APP_CONFIG = YAML.load_file("#{RAILS_ROOT}/config/config.yml")[RAILS_ENV]
Rails 3.x:
APP_CONFIG = YAML.load_file("#{Rails.root}/config/config.yml")[Rails.env]
次に、以下を使用して値を取得できます。
title = APP_CONFIG['app_title']
詳細については、このRailscastを参照してください。
かなりいいプラグイン/gemSettingslogicがあります。
# app/config/application.yml
defaults: &defaults
cool:
saweet: nested settings
neat_setting: 24
awesome_setting: <%= "Did you know 5 + 5 = #{5 + 5}?" %>
development:
<<: *defaults
neat_setting: 800
test:
<<: *defaults
production:
<<: *defaults
これらの設定は、モデル内など、どこでも使用できます。
class Post < ActiveRecord::Base
self.per_page = Settings.pagination.posts_per_page
end
これが私がしたことであり、ほとんどの人がこのアプローチに従っているようです:http: //kpumuk.info/ruby-on-rails/flexible-application-configuration-in-ruby-on-rails/