Ruby on Rails Загрузка одного файла с использованием Carrierwave


пример

Начать загрузку файлов в Rails довольно просто, прежде всего вам нужно сделать выбор плагина для управления загрузками. Наиболее распространенными являются Carrierwave и Paperclip . Оба они похожи по функциональности и богаты документацией по

Давайте посмотрим на пример с простым загружаемым изображением аватара с Carrierwave

После bundle install Carrierwave введите консоль

$ rails generate uploader ProfileUploader

Это создаст файл конфигурации, расположенный в /app/uploaders/profile_uploader.rb

Здесь вы можете настроить хранилище (то есть локальное или облачное), применять расширения для манипуляций с изображениями (т. Е. Генерировать большие пальцы через MiniMagick) и устанавливать белый список на стороне сервера

Затем создайте новую миграцию с типом строки для user_pic и установите загрузчик для него в модели user.rb.

mount_uploader :user_pic, ProfileUploader

Затем отобразите форму для загрузки аватара (это может быть вид редактирования для пользователя)

<% form_for @user, html: { multipart: true } do |f| %>
    <%= f.file_field :user_pic, accept: 'image/png, image/jpg' %>
    <%= f.submit "update profile pic", class: "btn" %>
<% end %>

Обязательно включите {multipart: true} в форме заказа, чтобы обрабатывать закачки. Принять необязательно, чтобы установить белый список списка на стороне клиента.

Чтобы отобразить аватар, просто выполните

<%= image_tag @user.user_pic.url %>