이번 주 Rails 코드베이스에는 다양한 기능 개선 및 안정성 향상 업데이트가 포함되었습니다. ### 보안 및 인증 강화
-
has_secure_password알고리즘 옵션 추가: Active Model의has_secure_password에:algorithm옵션이 도입되어 다양한 비밀번호 해싱 알고리즘을 선택할 수 있게 되었습니다. -
Argon2 지원: 이전 PR을 기반으로
gem "argon2"를 추가하고has_secure_password algorithm: :argon2를 호출하여 Argon2를 사용할 수 있습니다. Argon2는 BCrypt의 72바이트 제한과 달리 비밀번호 길이에 제한이 없습니다. ### 개발 편의성 및 가이드 개선 -
새로운 Rails Engines 가이드: 수개월간의 재작업을 거쳐 완전히 새로운 Rails Engines 가이드가 공개되었습니다.
-
humanize국제 문자 지원:ActiveSupport::Inflector.humanize가 이제 국제 문자를 올바르게 처리하여, 예를 들어humanize("аБВГДЕ")가 “Абвгде”를 반환합니다. -
컬렉션 렌더링 시 블록 사용:
render @posts do |post| ... end와 같이 컬렉션을 렌더링할 때 블록을 사용할 수 있는 기능이 추가되어 뷰 로직의 유연성이 향상되었습니다. ### Active Record 및 내부 구조 최적화 -
QueryIntent객체 도입: Active Record 내부 개선을 위해Parameter Object: QueryIntent가 도입되었으며, 이로 인해exec_update,exec_delete,exec_insert메서드가update,delete,insert로 대체됩니다. -
Rails 8.1 스키마 캐시 역호환: Rails 8.1에서 생성된 스키마 캐시가 Rails 8.0에서 오류 없이 역직렬화될 수 있도록 변경되어 버전 호환성이 확보되었습니다.
-
복합 기본 키 모델 중복 방지: 복합 기본 키를 가진 모델을 eager-loading할 때 `JoinDependency
instantiate`에서 발생하던 중복 레코드 반환 문제가 해결되었습니다.
### 기타 버그 수정 및 안정성 개선
-
rails new생성 시stylesheet_link_tag가 CSS 번들링에 맞춰 올바르게 생성되도록 수정되었습니다. -
ActionController::StructuredEventSubscriber의rescue_from_handled백트레이스 이중 필터링 문제가 해결되었습니다. -
PostgreSQL 시간 범위 컬럼에서
nil을 사용할 때 하한 값으로-infinity가 올바르게 적용되도록 수정되었습니다. -
메일러 뷰에서
content_security_policy_nonce관련 오류가 수정되었습니다. 이번 주 Rails 코드베이스에는 총 22명의 기여자가 참여하여 프로젝트 발전에 기여했습니다.