rails / carrierwave: нулевые значения, сохраненные после загрузки изображения с помощью carrierwave, minimagick

Я пытаюсь загружать изображения через несущую волну и используя рельсы.

используя Minimagick.

На самом деле, я думаю, загрузка работает правильно, но изображения не отображаются. Также он показывает значение nil в базе данных.

вот мой код.

  1. приложение / модели / user.rb

класс User ‹ActiveRecord :: Base

mount_uploader: изображение, ImageUploader

конец

  1. mypage.html.erb (действие формы для "edit_complete")

<input type="file" name='image'>

  1. users_controller.rb

def edit_complete

user = User.find (сеанс [: user_id])

user.image = params [: изображение]

user.save

redirect_to: назад

конец

  1. приложение / загрузчики / image_uploader.rb

класс ImageUploader ‹CarrierWave :: Uploader :: Base

включить CarrierWave :: MiniMagick

хранилище: файл

def store_dir

"uploads / # {model.class.to_s.underscore} / # {mount_as} / # {model.id}"

конец

конец

Ошибок не было, но в базе ничего не сохранено.

Я ожидаю, что файлы изображений должны быть сохранены в папке public/upload, а файлы изображений должны отображаться в базе данных в rails c User.all.

Однако, когда я загружаю файл 1.png, ничего не сохраняется, и папка общего доступа / загрузки не создается. Также в базе данных отображается значение nil.

Есть ли решение для этого?


person daniel kim    schedule 16.01.2015    source источник


Ответы (2)


При загрузке файла вам необходимо использовать параметр multipart в теге формы, т.е. параметр multipart должен быть истинным в теге формы.

person Nishant Goel    schedule 05.03.2015

Попробуйте что-то вроде этого:

   <%= form_for @user, :html => {:multipart => true} do |f| %>
        <%= f.file_field :image%>
        <%= f.submit 'Edit'%>
    <% end %>
person Gurra    schedule 01.06.2015