0

これは私の現在のコントローラです: 'trace_controller.rb'

rule_oms = Rule.new("localhost","root","","oms_local")
rule_warehouse=Rule.new("localhost","root","","warehouse_local")
rule_payment=Rule.new("localhost","root","","payment_local")

... .... ステージングとプロダクションの 2 つの異なるモードがあります。一意のホスト名、パスワード、ユーザー、データベース名があります。

これらの設定を environment.rb から変更するにはどうすればよいですか? それらに応じて変数を設定できますか?

環境に応じて、すべての異なるデータベースのホスト名、pwd、ユーザー、db_name を取得します。ほとんどの Rails アプリとは異なり、環境に関係なく複数のデータベースに接続します。

私が何をすべきか考えていますか?(Railsの最新バージョンを使用)。

4

3 に答える 3

1

設定フォルダ->環境->環境名で別のファイルを追加します

デフォルトでは、development.rb、test.rb、production.rbが存在します。qa_1環境にqa_1.rbとしましょう。

このファイルに必要な構成を設定します。既存の環境ファイルからコピーして、必要に応じて変更できます。

RailsアプリをRAILS_ENV=qa_1で実行します

qa_1.rbファイルから設定を取得します

おそらくsettings_logicgemを設定して、環境に応じた値を設定できます

gem'settingslogic'

次に、app / models/settings.rbに追加します

class Settings < Settingslogic
  source "#{Rails.root}/config/application.yml"
  namespace Rails.env
end

/config/application.ymlで、環境固有のデータを設定します

defaults: &defaults
  db: default_db
development:
  user: dev_user
test:
  user: test_user
production:
  user: prod_user
  db: prod_db
qa_1:
  user: qa_1_user
  db: qa_1_db

database.ymlでも使用できます

qa_1:
  db: qa_db
  user: user
于 2013-03-07T07:34:04.880 に答える
0

何を達成しようとしているのかはわかりませんが、これを に配置するとenvironment.rb、ある種のグローバル定数が必要になると推測できます。これが必要な場合は、内部にファイルを作成し、そこに以下を配置することをお勧めしconfig/initializersますconstants.rb

RULE_OMS = Rule.new("oms-#{Rails.env}") 
RULE_WAREHOUSE = Rule.new("warehouse_#{Rails.env}")
RULE_PAYMENT = Rule.new("payment_#{Rails.env}")

RULE_OMS次に、アプリ内の任意の場所を呼び出すだけです。

于 2013-03-07T07:17:38.547 に答える
0

これは私のために働いたものです - :

1) config/environments での local.rb の作成 (単なる開発のコピー)

2) database.yml で local のパラメーターを定義する

3) config/environment.rb にパラメータを設定する

if Rails.env.local?
  OMS_HOST="localhost"
  OMS_DB="oms_local"
  OMS_USER="root"
  OMS_PWD=""

  WAREHOUSE_HOST="localhost"
  WAREHOUSE_DB="warehouse_local"
  WAREHOUSE_USER="root"
  WAREHOUSE_PWD=""

  PAYMENT_HOST="localhost"
  PAYMENT_DB="payment_local"
  PAYMENT_USER="root"
  PAYMENT_PWD=""
end

if Rails.env.development?
  OMS_HOST="amt.com"
  OMS_DB="oms_staging"
  OMS_USER="user1"
  OMS_PWD="xyz"
....
.....

4) trace_controller.rb では、これらの定数を使用してルール モデルを初期化しました。

5) 使用している場合は、これを .gitignore ファイルに追加します。

6) サーバーを再起動することを忘れないでください。

質問の仕方がわかりにくかったことをお詫びします。この答えが将来誰かに役立つことを願っています。

于 2013-03-07T13:10:43.940 に答える