Ruby on Rails: Обработка глобальных констант?

#ruby-on-rails #reactjs #ruby #activerecord

Вопрос:

Я работаю над приложением Ruby on Rails с интерфейсом React.

В настоящее время у меня есть константы, которые необходимы как на бэкэнде, так и на интерфейсе. Чтобы они не расходились и могли управляться в одном месте, мы храним их в наших config/initializer файлах на серверной части. У нас есть ConstantsController приложение, которое обслуживает их на интерфейсе.

До сих пор это было здорово, но теперь некоторые константы устарели. Например, для color константы у нас больше нет доступных цветов, и мы не хотим показывать их на интерфейсе. Однако, если мы изменим константы(удалив неиспользуемые), мы нарушим некоторые проверки.

Прямо сейчас я могу думать только о Active наборе констант, которые отправляются на интерфейс, который является подмножеством Full набора констант. В противном случае я представляю, как определяю константы в таблице с отключенным полем и создаю модель для каждой константы. На интерфейсе мы бы отображали только active константы в этом случае

Комментарии:

1. Неясно, в чем заключается вопрос. Нет единственного «правильного» способа-и если «старое» значение может быть отправлено обратно с внешнего интерфейса (например, во время процесса редактирования) без исправления до значения «ок», у вас все равно будут ошибки проверки, что означает, что потребуется выполнить какую-то работу по заполнению/исправлению. Что имеет наибольший смысл, так это зависимость от контекста.

2. Можете ли вы объяснить, что вы подразумеваете под «мы исправим некоторые ошибки проверки»?

3. Я бы, вероятно, попытался найти другие слова для того, что вы пытаетесь сделать — «глобальный» и «постоянный» имеют некоторые очень специфические значения в программировании. Если вы перефразируете его, например, как «Общие настройки приложения, используемые на передней и задней панели», это значительно упростит обсуждение различных возможных решений, которые могут быть любыми из файла YAML/JSON, одной или двух таблиц базы данных или чего-то вроде memcached.

4. И, как указал @DaveNewton, на самом деле нет «правильного» способа обработки конфигурации, и этот вопрос может быть закрыт, поскольку он в основном основан на мнении. Возможно, вы захотите изучить, как разные разработчики подошли к проблеме, и, возможно, задать вопрос на форуме, например reddit.com/r/rubyonrails который открыт для обсуждения.

Ответ №1:

Я понимаю, что все, что я называю константой, не является константой, если оно меняется. Вместо этого они должны обрабатываться как настройки/типы/версии, которые хранятся в таблицах