Здесь стоило бы использовать класс File
вместо создания пути и разделения файлов gsubbing. Например:
file = File.join(RAILS_ROOT, 'public', 'data', 'import.xls')
Я почти уверен, что вам не нужно слишком беспокоиться об использовании обратной косой черты для разделителей файлов, хотя в Windows (я прекратил разработку на Windows, хотя и не могу проверить).
Затем вы можете проверить, считает ли ruby, что файл существует, выполнив File.exists?(file)
, прежде чем делать что-либо специфичное для roo.
Кроме того, вы используете приложение и консоль rails как разные пользователи? Это может вызвать проблемы с разрешениями в одном, но не в другом.