10

管理者アカウントを提供するユーザー認証を備えたRailsアプリケーションに取り組んでいます。管理者アカウント内に、サイト全体の設定用のページを作成しました。

これらの設定を作成するための標準は何であるか疑問に思いました。たとえば、アプリケーション名の名前を変更したり、ヘッダーの色を変更したりする設定の1つが必要だとします。

私が探しているのは、基本的なプロセス/メソッド(必ずしも特定のコードではない)を誰かが説明することですが、それは素晴らしいことです!

4

3 に答える 3

15

データベーステーブルに保存する必要のない一般的なアプリケーション構成の場合、 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を参照してください。

于 2010-05-25T19:58:39.700 に答える
6

かなりいいプラグイン/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
于 2010-05-25T23:05:14.157 に答える
4

これが私がしたことであり、ほとんどの人がこのアプローチに従っているようです:http: //kpumuk.info/ruby-on-rails/flexible-application-configuration-in-ruby-on-rails/

于 2010-05-25T19:04:04.710 に答える