CamtParser::File.parse
ожидает путь к файлу, но вы передаете объект ActionDispatch::Http::UploadedFile
.
Когда вы загружаете файл в рельсы, файл помещается в экземпляр ActionDispatch::Http::UploadedFile
.Для доступа к самому файлу существует атрибут tempfile
.
. Он вернет Tempfile
, представляющий фактический загружаемый файл.Tempfile
имеет метод path
, который представляет собой путь к самому файлу, поэтому, поскольку CamtParser::File.parse
ожидает путь к файлу, его можно вызвать следующим образом
CamtParser::File.parse(uploaded_file.tempfile.path)
CamtParser
также имеет String
класс, который может анализировать соответствующую строку, чтобы вы могли назвать ее как
CamtParser::String.parse(uploaded_file.read)
Это работает, потому что ActionDispatch::Http::UploadedFile
предоставляет метод read
, который аналогичен вызову uploaded_file.tempfile.read