Загружайте изображения в рельсы с помощью 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-адресом прикрепленного изображения, которое отобразит изображение в браузере.