«TypeError: неявное преобразование массива в строку» при попытке переместить файл в другую папку после загрузки файлов в Ruby on Rails - PullRequest
0 голосов
/ 07 октября 2018

Я сталкиваюсь со сложностью в перемещении файлов в Ruby on Rails.

Я хочу переместить файл в другую папку после завершения загрузки, вот мой фрагмент кода

def create
    file = Dir.glob("#{Rails.root}/public/files/**/*.csv")
    file.each do |filesrc|
        # => get file name
        file_name =  File.basename(filesrc, ".csv")
        # => get use_id from file name
        user_id = file_name.scan(/\d+/).first
        # => send request for upload into model
        History.import(filesrc, user_id)

        #=> for moving this file
        dest = Dir.glob("#{Rails.root}/public/files_old/")
        FileUtils.mv(filesrc, dest)
    end
end

это мой код, и он работает правильно для импорта в БД, но после этого не перемещается в histories_old и показывает ошибку ниже

TypeError: нет неявного преобразования массива в строку

Что я делаю не так с этим кодом?

Действительно признателен, если решите эту проблему.

Спасибо.

1 Ответ

0 голосов
/ 07 октября 2018

Вставьте "#{Rails.root}/public/files_old/" в виде строки в пункте назначения, например:

FileUtils.mv(filesrc, "#{Rails.root}/public/files_old/")

РЕДАКТИРОВАТЬ: Как упоминалось ниже в комментарии от Johan, FileUtils.mv ожидает строку какего назначение, но Dir.glob предоставляет массив, который вы предоставляете в качестве места назначения для FileUtils.mv

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...