Загрузки Carrierwave не отображаются в POST

Я следую руководству Railscast по загрузке Carrierwave, и установили одинаковые файлы. Загрузка работает нормально, если я загружаю файл через консоль, но моя форма не публикуется правильно.

У меня есть базовая форма, которая включает в себя:

<%= f.label :receipt %><br>
<%= f.file_field :receipt %>

Rails 4 автоматически включает в форму тег enctype="multipart/form-data".

Когда я отправляю форму, я смотрю на журналы сервера. Загрузка отображается в параметрах:

"receipt"=>#<ActionDispatch::Http::UploadedFile:0x007fcb25c624e0 @tempfile=#<Tempfile:/var/folders/ty/yks2xd9n76z9p49qzprvt1900000gn/T/RackMultipart20130903-53712-17zblz4>, 
@original_filename="Avatar.jpg", 
@content_type="image/jpeg", 
@headers="Content-Disposition: form-data; name=\"expense[receipt]\"; filename=\"Avatar.jpg\"\r\nContent-Type: image/jpeg\r\n">},

Однако оператор INSERT не содержит никакого упоминания о моем поле или файле квитанции. Нет никакой ошибки. Файл также не загружается в каталог, который я указал в Carrierwave.

Любые идеи о том, что здесь может быть не так? Это не дубликат этого ответа, который был проблемой с jQuery Мобильный. Я действительно озадачен тем, что происходит.

Редактировать: мне, вероятно, следует включить и мою модель:

class Expense < ActiveRecord::Base
    mount_uploader :receipt, ReceiptUploader
end

У меня также есть класс загрузчика запасов, созданный Carrierwave:

class ReceiptUploader < CarrierWave::Uploader::Base
    storage :file

    def store_dir
        "receipts"
    end
end

Изменить 2: вот мой контроллер для создания расходов:

def new
  @expense = Expense.new
end

def create
  @expense = Expense.new(expense_params)

  respond_to do |format|
    if @expense.save
      format.html { redirect_to @expense, notice: 'Expense was successfully created.' }
      format.json { render action: 'show', status: :created, location: @expense }
    else
      format.html { render action: 'new' }
      format.json { render json: @expense.errors, status: :unprocessable_entity }
    end
  end
end

person Marcelo Somers    schedule 03.09.2013    source источник
comment
Как выглядит ваш метод контроллера? Вы пытались использовать pry, чтобы проверить, отфильтровывается ли параметр, прежде чем он попадет в Expense# создать или в счет#обновить?   -  person Taavo    schedule 04.09.2013
comment
Обновлен исходный пост с моим методом контроллера для создания и создания. Это стандартный код генерации скаффолда. С другой стороны, я установил pry, но не уверен, что мне с ним искать.   -  person Marcelo Somers    schedule 04.09.2013
comment
В основном я хочу знать, имеет ли cost_params[:receipt] ожидаемое значение. Возможно, вам потребуется разрешить это.   -  person Taavo    schedule 04.09.2013
comment
Невероятный. Серьезная ошибка новичка здесь - это была точная проблема.   -  person Marcelo Somers    schedule 04.09.2013


Ответы (1)


Похоже, что параметры не разрешали загрузку. Ошибка новичка.

person Marcelo Somers    schedule 04.09.2013