Автоматизация создания страницы производства - PullRequest
0 голосов
/ 04 марта 2020

У меня есть уникальный вопрос, и я ищу руководство о том, с чего начать. Я новичок в Rails и Ruby.

Я собираюсь взять электронную таблицу информации, в этом примере это будет список мест, таких как города в США. А затем возьмите эту электронную таблицу и попросите мое приложение rails создать страницы для каждого из городов.

Моя текущая настройка очень похожа на блог, поэтому у меня в Posts есть модель. Ваш базис c Рельсовый помост постов. Говоря направленно, как бы я начал изучать методы написания и запуска сценария в производстве, который бы автоматизировал создание сообщений на основе списка городов в электронной таблице?

1 Ответ

0 голосов
/ 04 марта 2020

Это будет высокий уровень, так как ваш вопрос довольно широкий. Это то, как я это делаю, но, вероятно, существуют десятки других способов.

Я использую гем под названием Roo (https://github.com/roo-rb/roo), который обеспечивает доступ для чтения для всех распространенных типов электронных таблиц. Затем вам потребуется метод в вашем posts_controller.rb для обработки ввода.

# POST /posts/import
def import
  xlsx = Roo::Excelx.new(params[:file].tempfile.path)

  xlsx.each do |row|
    i += 1
    next if i == 1 # skip header if necessary
    post = Post.new(field1: row[0], field2: row[1]) # etc.
    if post.valid?
      post.save
      imported += 1
    else
      errors << "Row #{i}: #{post.errors.messages} <br />"
    end
  end
  render json: { success: "#{imported} cities imported.", errors: errors }
end

row - это строка из вашей электронной таблицы, а столбцы представлены элементом массива row[0] - это ячейка A текущий ряд и т. д.

...