1

多くのレコードを含む大きなデータベースはほとんどありません (city-city-price のように見えます)。また、価格の変更パラメーターが多数あります。このパラメータはどこに保持すればよいですか? 3 つのオプションが表示されます。

  • 各パラメーターのフィールドを持つ DB を作成します (ただし、これは 1 つのレコードのみを持つ DB になり、スケーラビリティは良くありません)
  • 1つのフィールドでDBを作成し、すべてのパラメータに対してレコードを作成します(ただし、すべてのレコードの意味を覚えておく必要があります)
  • コントローラのハードコード パラメータ

すべてのオプションがエレガントに見えるわけではありません。そのような場合の他の良い解決策はありますか?

4

2 に答える 2

1

都市名や価格通貨などの固定パラメータをどこかに保存したいと思います。これらは、動的変数というよりも項目のリストです。

これを処理する標準的な方法は、yaml のような構成ファイルを使用することです。これにより、キーをパラメーターの値にマップできます。

適合する場合は、 YAML 構成ファイルrailscastを確認することをお勧めします。

それ以外の場合は、DB にすべての値を保持する新しいモデルを作成することもできます。たとえば、本番環境でリストを動的に変更する場合は、この選択が適している場合があります。

于 2013-03-28T08:38:14.373 に答える
1

YAML は、モデルを関連付けることなく、アプリケーション全体でいくつかの値を処理する優れた方法です。

それ以外の場合は、次のようなファイルを作成し、config/initializers/constants_file.rbそのファイルに値を配置して、サーバーの再起動後にどこからでもアクセスできるようにします。

たとえば、config/initializers/constants_file.rb私には次のものがあります

CURRENCY_TYPES = {:city1 => "値1", :city2 => "値2", ...}

CURRENCY_TYPES[:city1]のようなアプリからどこからでもアクセスできます。

または、モデルで定数を作成し、必要に応じてそれを使用することもできます。

于 2013-03-28T09:31:06.633 に答える