HTML Diff
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 &lt; 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 &lt; 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 &lt; 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