1

Rails 3 で 1 回限りのユーザー設定 (VAT パーセンテージ、タグ ラインなど) を保存するためのパターンを見つけるのに苦労しています。シングル インスタンスを持つグローバル サイト設定をセットアップする必要があります。

理想的には、答えはgemやプラグインではなくデザインパターンであることが望ましいです(誰かがActive Adminと統合するgemやプラグインを知っていない限り)

4

2 に答える 2

1

使い捨て設定とはどういう意味ですか?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/environmentsENVハッシュに変数を設定するには、ディレクトリ内で設定できます。そのディレクトリには、、、、の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
于 2012-11-24T00:01:44.943 に答える
0

キーと値のペアを格納するためのクラスはどうですか?

class Settings < ActiveRecord::Base

  attr_accessible :lookup, :value

  def self.VAT
    return self.find_by_lookup('VAT')
  end

end

@vat = Settings.VAT.valueその後、または同様のことができます。ルックアップは、内部で定義されたキーです。もちろん、値列はすべて同じデータ型である必要がありますが、getter メソッドで (またはサブクラスを介して) 必要な変換を処理できます。

于 2012-11-24T09:46:42.050 に答える