Аудио файлы всегда нулевые, используя Taglib-ruby в рельсах

Я пытаюсь создать приложение в Rails, которое будет загружать аудиофайлы и считывать с них метаданные, чтобы заполнить базу данных. Я использую гем Taglib-ruby для обработки файлов различных типов. Кажется, что загрузки работают сами по себе, но Taglib считает любой файл, переданный ему, как ноль.

Вот мой контроллер:

class UploadsController < ApplicationController
    require 'taglib'

    def new
    end

    def create
        file = params[:upload]
        TagLib::FileRef.open(file) do |fileref|
            unless fileref.null?
                tag = fileref.tag
                # properties = fileref.audio_properties
                @song = Song.new(title: tag.title, artist: tag.artist, album: tag.album,
                    year: tag.year, track: tag.track, genre: tag.genre)
                if @song.save
                    redirect_to songs_path
                else
                    render 'new'
                end
            else
                raise "file was null"
            end
        end
    end
end

и мой взгляд на отправку формы:

<h1> Upload </h1>

<%= form_tag(url: { action: :create }, html: { multipart: true }) do %>

    <%= label_tag :upload, "Scan your song:" %>
    <%= file_field_tag :upload, multiple: true %>

    <br />
    <%= submit_tag "Submit" %>

<% end %>

Кажется, что сам Taglib работает - добавление "require 'taglib" удаляет ошибку, которую я получаю в связи с этим, и макет, который я сделал для этого вне rails, работал нормально (поэтому файлы, которые я использую, также не проблема). Каждый раз, когда я запускаю это, поток управления нажимает на мою команду повышения, и никакая запись не сохраняется. Понятно, что fileref.null? возвращает true, что говорит мне о том, что что-то не так с процессом загрузки... но я не уверен, что.

В идеале я хотел бы использовать опцию множественной загрузки и запускать этот процесс для каждого файла последовательно, но я не могу даже получить одну загрузку, чтобы зарегистрироваться как что-либо, кроме нуля.

0 ответов

Другие вопросы по тегам