2013-03-28 5 views
1

У меня есть несколько больших баз данных с большим количеством записей (см. Город-город-цена). Также у меня есть дюжина модифицирующих параметров для цены. Где я должен хранить эти параметры? я вижу 3 варианта:Где сохранить дополнительные параметры в рельсах

  • Создание БД с полями для каждого параметра (но это будет DB только с одной записью и scalabiliy не хорошо)
  • Создание БД с одним полем и сделать запись для каждого параметр (но следует помнить, значение каждой записи)
  • параметров жёстко в контроллере

Все варианты не кажутся элегантны. Есть ли другое хорошее решение для такого случая?

ответ

1

YAML - отличный способ обработки некоторых значений во всем приложении без какой-либо связи Модели.

В противном случае просто создайте файл, например config/initializers/constants_file.rb, и поместите значения в этот файл, чтобы к ним можно было обращаться где угодно после перезапуска сервера.

, например, в config/initializers/constants_file.rb я следующее

 
CURRENCY_TYPES = {:city1 => "value1", :city2 => "value2", ...} 

, и вы можете получить доступ к этому где-либо из приложения, как CURRENCY_TYPES [: city1].

Или вы можете создать Constant в модели, и вы можете использовать это, если хотите.

+0

Спасибо, это то, что мне нужно. – Cyrill

1

Я предполагаю, что вы хотите хранить где-нибудь фиксированные параметры, такие как названия городов или валюта цены. Это скорее список элементов, чем динамические переменные.

Стандартные способы обращения с ним состоят в использовании файла конфигурации, такого как yaml. Это позволяет сопоставлять ключи со значениями ваших параметров.

Я советую вам посмотреть на YAML Configuration File railscast, если это устраивает:

В противном случае вы можете создать новую модель, чтобы сохранить все значения в БД. Этот выбор может быть лучше, если вы хотите динамически изменить список в производстве, например.

Смежные вопросы