Загружайте изображения в рельсы с помощью Activestorage

Чтобы загружать изображения в Rails с помощью ActiveStorage, вам сначала нужно установить гем ActiveStorage в ваше приложение. Для этого добавьте следующую строку в свой Gemfile:

gem 'activestorage'

Затем запустите команду bundle install, чтобы установить гем.

Чтобы включить ActiveStorage, выполните следующую команду:

rails active_storage:install

Это создаст новый файл миграции, который добавит необходимые таблицы базы данных в ваше приложение. Запустите миграцию с помощью команды rails db:migrate.

Чтобы добавить вложение изображения к одной из ваших моделей, вам нужно будет использовать метод has_one_attached. Например, если у вас есть модель User и вы хотите прикрепить изображение аватара к каждому пользователю, вы можете добавить следующий код к своей модели User:

class User < ApplicationRecord
  has_one_attached :avatar
end

Это добавит в вашу модель User новый метод avatar, который вы сможете использовать для прикрепления и извлечения изображений.

Чтобы прикрепить изображение к экземпляру модели, вы можете использовать метод attach. Например, если вы хотите прикрепить изображение к экземпляру User, вы можете использовать следующий код:

user = User.first
user.avatar.attach(io: File.open('path/to/image.jpg'), filename: 'image.jpg')

Это прикрепит изображение, расположенное по адресу path/to/image.jpg, к экземпляру user.

Чтобы получить изображение из экземпляра модели, вы можете использовать метод blob. Например, вы можете использовать следующий код для отображения прикрепленного изображения в представлении Rails:

<%= image_tag @user.avatar.blob.service_url %>

Это создаст тег <img> с URL-адресом прикрепленного изображения, которое отобразит изображение в браузере.