Егор Щербаков

+16
с 2022

Ruby-разработчик

8 подписчиков
0 подписок

В новой Rails 8 добавили метод params#expect, который заменяет params#require и делает обработку параметров ещё более безопасной и явной

# `require` и `permit` class PeopleController < ApplicationController def create Person.create(person_params) end private def person_params params.require(:person).permit(:name, :age) end end # Rails 8+: Используем `expect` class PeopleController < ApplicationController def create Person.create(person_params) end private def person_params params.expect(person: [:name, :age]) end end
4
Инструменты для работы с JavaScript в Rails: какой выбрать?

Когда дело доходит до работы с JavaScript в Rails, выбор инструментов просто огромен: Webpacker, Sprockets, Shakapacker, esbuild, Vite, Rollup.js, importmaps, и это лишь начало списка. Rails как будто предлагает бесконечное меню опций, что затрудняет выбор для разработчиков, особенно если вы хотите создать универсальное решение для различных прилож…

2

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

1. Блокировка через транзакции

1

Importmap в Rails упрощает работу со сторонними JavaScript библиотеками. В этом посте покажу, как интегрировать библиотеки в ваш проект с помощью Importmap, используя pin, флаг --download и метод pin_all_from.

Добавление JavaScript файлов:

1

Кэширование страниц в Rails работает с помощью метода caches_page, который используется в контроллерах. Этот метод указывает Rails сохранить весь вывод запроса на диск. При последующих запросах сервер будет использовать кэшированный контент напрямую, без Rails. В результате, никаких записей в журнал Rails не будет, и фильтры контроллера не будут ср…

class HomepageController < ApplicationController caches_page :index def index; end end

Rails 8 будет с линтером Rubocop по умолчанию. Стили будут взяты из гема rubocop-rails-omakase

Линтер Omakase Ruby

В разработке веб-приложений часто возникает необходимость в получении явного согласия пользователей на условия обслуживания, правила конфиденциальности или другие важные соглашения. В Ruby on Rails метод validates_acceptance_of предоставляет удобный способ для реализации такой валидации, позволяя убедиться, что пользователь подтвердил согласие пере…

Constraints в Rails - это правила, определяющие ограничения на маршрутизацию запросов в вашем приложении. Они определяют, как запросы маршрутизируются к определенным контроллерам и действиям в зависимости от условий.

Группировка Constraints: Если у вас есть несколько маршрутов, которые требуют схожих ограничений для ключей сегментов, вы может…

1

В языке программирования Ruby метапрограммирование - это мощный инструмент, который позволяет программистам изменять и расширять поведение своих классов и объектов на лету. Одним из наиболее полезных методов метапрограммирования в Ruby является define_method. Давайте рассмотрим, как этот метод позволяет создавать методы динамически во время выполне…

class MyClass define_method :my_method do puts "This is my method!" end end obj = MyClass.new obj.my_method # Выводит "This is my method!"
Улучшение качества кода с помощью dry-rb и эффективного покрытия тестами

Эффективное покрытие тестами с помощью dry-rb: Одним из ключевых аспектов разработки программного обеспечения является покрытие кода тестами. dry-rb предоставляет инструменты, которые значительно облегчают процесс тестирования.

1
Ruby Roda: Простота и гибкость для разработки микросервисов

Микросервисная архитектура стала популярным подходом к разработке веб-приложений, позволяющим создавать распределенные системы с высокой гибкостью и масштабируемостью. В этой статье мы рассмотрим, почему Ruby Roda является отличным выбором для разработки микросервисов и как его простота и гибкость помогают создавать эффективные и мощные сервисы.

1