Rails 3 で 1 回限りのユーザー設定 (VAT パーセンテージ、タグ ラインなど) を保存するためのパターンを見つけるのに苦労しています。シングル インスタンスを持つグローバル サイト設定をセットアップする必要があります。
理想的には、答えはgemやプラグインではなくデザインパターンであることが望ましいです(誰かがActive Adminと統合するgemやプラグインを知っていない限り)
Rails 3 で 1 回限りのユーザー設定 (VAT パーセンテージ、タグ ラインなど) を保存するためのパターンを見つけるのに苦労しています。シングル インスタンスを持つグローバル サイト設定をセットアップする必要があります。
理想的には、答えはgemやプラグインではなくデザインパターンであることが望ましいです(誰かがActive Adminと統合するgemやプラグインを知っていない限り)
使い捨て設定とはどういう意味ですか?APIキーや環境変数のようなものを意味しますか?
その場合は、ENVハッシュを使用し、環境ファイル(以下で説明)にENV変数を設定することをお勧めします。
.rb
ディレクトリに設定が必要な個々のgem(または任意のエンティティ)ごとにファイルを作成しますconfig/initializers/
。たとえば、ストライプを使用する場合、config/initializers/stripe.rb
次のように作成しました。
Rails.configuration.stripe = {
:publishable_key => ENV['STRIPE_PUBLISHABLE_KEY'],
:secret_key => ENV['STRIPE_SECRET_KEY']
}
Stripe.api_key = Rails.configuration.stripe[:secret_key]
これにより、ストライプgem内に初期設定がセットアップされ、ENVハッシュから変数値が取得されます。
config/environments
ENVハッシュに変数を設定するには、ディレクトリ内で設定できます。そのディレクトリには、、、、の3つの異なるファイルがconfig/environments/test.rb
ありconfig/environments/development.rb
ますconfig/environments/production.rb
。ENVハッシュに変数を設定します(以下を参照)。
AppName::Application.configure do
# Set Stripe API Key
ENV['STRIPE_SECRET_KEY'] = "sk_test_key"
ENV['STRIPE_PUBLISHABLE_KEY'] = "pk_test_key"
...
end
キーと値のペアを格納するためのクラスはどうですか?
class Settings < ActiveRecord::Base
attr_accessible :lookup, :value
def self.VAT
return self.find_by_lookup('VAT')
end
end
@vat = Settings.VAT.value
その後、または同様のことができます。ルックアップは、内部で定義されたキーです。もちろん、値列はすべて同じデータ型である必要がありますが、getter メソッドで (またはサブクラスを介して) 必要な変換を処理できます。