Сбой при инициализации

string strData = "This is much easier"
int intDelimiterIndx = strData.IndexOf("is");
int intDelimiterLength = "is".Length;
str1 = strData.Substring(0, intDelimiterIndx);
str2 = strData.Substring(intDelimiterIndx + intDelimiterLength, strData.Length - (intDelimiterIndx + intDelimiterLength));
0
задан Juanse Cora 13 July 2018 в 21:29
поделиться

1 ответ

Когда вы запускаете rails db:seed, Rails инициализируется, иначе вы не смогли использовать модели Rails в этом файле. И это причина вашей проблемы. Потому что в этом процессе инициализации Config.first.city должен завершиться ошибкой, поскольку в базе данных пока нет данных.

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

Тем не менее, в настоящее время у вас есть два варианта:

  1. Не используйте семенной файл Rails для заполнения базы данных. Вместо этого используйте, например, простой SQL. Или
  2. изменить код в инициализаторе, чтобы иметь возможность обрабатывать ситуации, в которых Config.first пуст. Например, используя разумные значения по умолчанию.
1
ответ дан spickermann 17 August 2018 в 12:08
поделиться
  • 1
    Ваш asnwer частично корректен, используя $ current_city = Config.try (: first) .try (: city) все работает нормально. Тем не менее, как я могу получить эту глобальную переменную, выполненную с самого начала без инициализаторов? – Juanse Cora 14 July 2018 в 19:56
  • 2
    Вопрос в том, почему вам нужна эта глобальная переменная в первую очередь. И если это хорошая идея, чтобы инициализировать его записью базы данных (не удивительно, что переменная не изменяется при изменении записи в базе данных). Но у меня нет никаких предложений о том, как исправить это, не зная, почему вы ввели такую ​​глобальную переменную и как выглядит ваш код. Я предполагаю, что лучшим вариантом будет файл конфигурации или переменная среды. Btw первый try в вашем комментарии не имеет смысла, почему Config когда-либо nil? – spickermann 15 July 2018 в 07:10
Другие вопросы по тегам:

Похожие вопросы: