이번 주 Rails 업데이트의 주요 내용은 다음과 같습니다.
라우팅 및 엔진 개선
- 루트 마운트 엔진의
SCRIPT_NAME처리 수정: 루트(/)에 마운트된 엔진에서SCRIPT_NAME사용 시 URL 헬퍼가 스크립트 이름을 잘못 제거하던 문제가 해결되었습니다.RoutesProxy#merge_script_names가/스크립트 이름을 처리하지 못하던 엣지 케이스가 수정되어, 경로 접두사 아래 배포된 앱의 URL 생성이 올바르게 복원됩니다. /rails/info/routes에 엔진 라우트 표시: 이제/rails/info/routes페이지에서 메인 애플리케이션 라우트와 함께 엔진 라우트도 표시됩니다.Rails.application.routes.routes를 사용하도록 변경되어 마운트된 엔진의 라우트 정보가 출력에 포함됩니다.
Active Storage 설정 유연성 강화
- 분석기 및 변형 프로세서 설정 복원: Active Storage에서 분석기(analyzers) 및 변형 프로세서(variant processor)를 완전히 구성하거나 비활성화할 수 있는 기능이 복원되었습니다.
config.active_storage.analyzers를 비우거나 사용자 정의 분석기를 제공할 수 있으며,config.active_storage.variant_processor = :disabled설정을 통해 시작 시 경고를 제거할 수 있습니다.
시간 속성 및 Rate Limiting 정확성 향상
- 시간 속성 더티 트래킹 오류 수정: 시간 전용 속성이 시간대 변환으로 인해 동일한 시간을 할당했음에도 불구하고 잘못 변경된 것으로 표시되던 문제가 수정되었습니다.
config.active_record.use_fixed_date_for_time_attributes = true설정을 통해 시간 값을 고정된 날짜(2000-01-01)로 정규화하여 잘못된 더티 트래킹을 방지합니다. - RateLimiting에 메서드 이름 지원: RateLimiting의
:by및:with옵션이 이제 콜러블(callable)뿐만 아니라 인스턴스 메서드 이름도 지원합니다. 이 변경 사항은 선언의 가독성을 높이고 공유 커스터마이징의 재사용성을 향상시킵니다.
Capybara 셀렉터 일반화
- :rich_text_area Capybara 셀렉터 일반화:
:rich_text_areaCapybara 셀렉터가<trix-editor>요소 대신role="textbox"및contenteditable속성을 찾도록 변경되었습니다. 이로써 다른 Action Text 지원 WYSIWYG 에디터를 더 쉽게 지원할 수 있게 되었습니다.