У меня есть рубиновый скрипт, написанный, который принимает файл CSV и преобразует входные данные в хэш:Рубин на Rails упорно магазин Hash из CSV
Culper = File.open('.\CulperCSV.csv')
culper_hash = {}
# set up culper code hash from provided CSV
CSV.foreach(Culper) do |row|
number, word = row
culper_hash[word] = number
end
, и я пытаюсь сделать приложение Rails с помощью сценария.
Мой вопрос: Как сохранить хэш постоянно (или данные CSV, чтобы я мог построить хэш), чтобы я мог минимизировать время загрузки?
Мои мысли:
1) Загрузите данные CSV в базу данных (семя его), и каждый раз, когда я получаю посетитель на моем сайте, сделайте выше назначение в хэш, но из БД. (не уверен, как это сделать, но я могу исследовать его).
или
2) Загрузить полный хэш в базе данных (я думаю, что я бы сериализовать его?), Так что я могу сделать только один извлечь из БД и имеют хэш готов к работе.
Я очень новичок в создании приложений, особенно в Rails, поэтому, пожалуйста, задавайте вопросы, если то, что я пытаюсь сделать, не имеет смысла.
Благодарим вас за быстрый и подробный ответ. Я следил за вашими указаниями, но смутился на последнем шаге, который должен фактически загрузить db/model с моими значениями CSV. Я попытался запустить мой файл как скрипт, но потом он не может подключиться к db (неинициализированная константа CulperKey ... которая является моим именем модели), поэтому я попытался поместить свой скрипт в db/seeds.rb и запустить «rake db: seed ', и я получаю: «undefined method' culper_hash »для nil: NilClass« где culper_hash - мое имя_колонки. Можете ли вы объяснить, что я должен делать, чтобы заполнить db и, кроме того, как получить доступ к моему хэшу, как только я это сделаю? – mrlevitas
Пожалуйста, подтвердите, вы запустили скрипт в консоли проекта? Если да, то пожалуйста ** запустите «CulperKey» ** перед запуском скрипта, если вы не используете консоль rails, то, пожалуйста, откройте консоль проекта и запустите там скрипт, чтобы открыть консоль проекта, 1) путь «cd» к каталог проекта '' 2) 'rails c' 3)' CulperKey' (установить соединение с базой данных) 4) Запустить свой скрипт –
А, я не знал об этой возможности запускать скрипты из консоли rails ... так вот как вы можете установить соединение с db и изменить его вручную. Я решил проблему с помощью ** rake task ** и опубликовал шаги, которые я выполнил в отдельном ответе. Благодарим вас за руководство. – mrlevitas