0 added
6 removed
Original
2026-01-01
Modified
2026-02-26
1
-
<h2>Программа урока</h2>
2
-
<ul><li>Настройка ActiveStorage в проекте</li>
3
-
<li>Базовая работа с файлами. Добавление, удаление, получение ссылки</li>
4
-
<li>Продвинутая работа с файлами. Обработка, прямая загрузка</li>
5
-
<li>Интеграции с AWS S3, Google Cloud, Microsoft Azure</li>
6
-
</ul># Содает миграции для ActiveStorage bin/rails active_storage:install bin/rails db:migrate class User < ApplicationRecord has_one_attached :avatar validates :avatar, attached: true, content_type: %i[png jpg jpeg], size: { less_than: 5.megabytes } end<h3>Пример тестов</h3>
7
class VehiclesControllerTest < ActionDispatch::IntegrationTest setup do @vehicle = vehicles(:one) @attrs = { manufacture: Faker::Vehicle.manufacture, model: Faker::Vehicle.model, color: Faker::Vehicle.color, doors: Faker::Vehicle.doors, kilometrage: Faker::Vehicle.kilometrage, production_year: Faker::Date.backward, image: fixture_file_upload('hexlet.png', 'image/png') } end test 'should get index' do get vehicles_url assert_response :success end test 'should get new' do get new_vehicle_url assert_response :success end test 'should create vehicle' do post vehicles_url, params: { vehicle: @attrs } vehicle = Vehicle.find_by(@attrs.except(:image)) assert { vehicle } assert_redirected_to vehicle_url(vehicle) end test 'should show vehicle' do get vehicle_url(@vehicle) assert_response :success end test 'should get edit' do get edit_vehicle_url(@vehicle) assert_response :success end test 'should update vehicle' do patch vehicle_url(@vehicle), params: { vehicle: @attrs } @vehicle.reload assert { @vehicle.manufacture == @attrs[:manufacture] } assert { @vehicle.model == @attrs[:model] } assert_redirected_to vehicle_url(@vehicle) end test 'should destroy vehicle' do delete vehicle_url(@vehicle) assert_redirected_to vehicles_url assert { !Vehicle.exists? @vehicle.id } end end
1
class VehiclesControllerTest < ActionDispatch::IntegrationTest setup do @vehicle = vehicles(:one) @attrs = { manufacture: Faker::Vehicle.manufacture, model: Faker::Vehicle.model, color: Faker::Vehicle.color, doors: Faker::Vehicle.doors, kilometrage: Faker::Vehicle.kilometrage, production_year: Faker::Date.backward, image: fixture_file_upload('hexlet.png', 'image/png') } end test 'should get index' do get vehicles_url assert_response :success end test 'should get new' do get new_vehicle_url assert_response :success end test 'should create vehicle' do post vehicles_url, params: { vehicle: @attrs } vehicle = Vehicle.find_by(@attrs.except(:image)) assert { vehicle } assert_redirected_to vehicle_url(vehicle) end test 'should show vehicle' do get vehicle_url(@vehicle) assert_response :success end test 'should get edit' do get edit_vehicle_url(@vehicle) assert_response :success end test 'should update vehicle' do patch vehicle_url(@vehicle), params: { vehicle: @attrs } @vehicle.reload assert { @vehicle.manufacture == @attrs[:manufacture] } assert { @vehicle.model == @attrs[:model] } assert_redirected_to vehicle_url(@vehicle) end test 'should destroy vehicle' do delete vehicle_url(@vehicle) assert_redirected_to vehicles_url assert { !Vehicle.exists? @vehicle.id } end end