Ruby on Rails 5.2 릴리스 노트
Rails 5.2의 주요 기능:
- Active Storage
- Redis 캐시 스토어
- HTTP/2 Early Hints
- 자격 증명
- 콘텐츠 보안 정책
이 릴리스 노트에서는 주요 변경 사항만 다룹니다. 다양한 버그 수정 및 변경 사항에 대해서는 변경 로그를 참조하거나 GitHub의 Rails 주 저장소에서 커밋 목록을 확인하세요.
Rails 5.2로 업그레이드하기
기존 애플리케이션을 업그레이드하는 경우, 업그레이드 전에 충분한 테스트 커버리지를 확보하는 것이 좋습니다. 또한 Rails 5.1로 먼저 업그레이드하고 애플리케이션이 예상대로 작동하는지 확인한 후에 Rails 5.2로 업그레이드를 시도해야 합니다. 업그레이드 시 주의해야 할 사항은 “Ruby on Rails 업그레이드” 가이드에서 확인할 수 있습니다.
주요 기능
Active Storage
Active Storage는 Amazon S3, Google Cloud Storage, Microsoft Azure Storage와 같은 클라우드 스토리지 서비스에 파일을 업로드하고 Active Record 객체에 연결하는 기능을 제공합니다. 개발 및 테스트를 위한 로컬 디스크 기반 서비스와 백업 및 마이그레이션을 위한 하위 서비스 미러링을 지원합니다. Active Storage에 대한 자세한 내용은 “Active Storage 개요” 가이드에서 확인할 수 있습니다.
Redis 캐시 스토어
Rails 5.2에는 내장 Redis 캐시 스토어가 포함되어 있습니다. 이에 대한 자세한 내용은 “Rails의 캐싱: 개요” 가이드에서 확인할 수 있습니다.
HTTP/2 Early Hints
Rails 5.2는 HTTP/2 Early Hints를 지원합니다.
Early Hints를 활성화하려면 bin/rails server
에 --early-hints
옵션을 전달하면 됩니다.
자격 증명
프로덕션 앱 비밀번호를 저장하기 위한 config/credentials.yml.enc
파일이 추가되었습니다.
config/master.key
파일 또는 RAILS_MASTER_KEY
환경 변수로 암호화된 이 파일에 타사 서비스의 인증 자격 증명을 저장할 수 있습니다.
이는 결국 Rails.application.secrets
와 Rails 5.1에서 도입된 암호화된 비밀번호를 대체할 것입니다.
또한 Rails 5.2에서는 Credentials의 기반이 되는 API를 공개하여 다른 암호화된 구성, 키 및 파일을 쉽게 다룰 수 있습니다.
이에 대한 자세한 내용은 “Rails 애플리케이션 보안” 가이드에서 확인할 수 있습니다.
콘텐츠 보안 정책
Rails 5.2에는 애플리케이션에 대한 콘텐츠 보안 정책을 구성할 수 있는 새로운 DSL이 포함되어 있습니다. 전역 기본 정책을 구성하고 리소스별로 이를 재정의할 수 있으며, 다중 테넌트 애플리케이션의 계정 하위 도메인과 같은 요청별 값을 헤더에 삽입할 수 있는 람다를 사용할 수 있습니다. 이에 대한 자세한 내용은 “Rails 애플리케이션 보안” 가이드에서 확인할 수 있습니다.
Railties
자세한 변경 사항은 변경 로그를 참조하세요.
사용 중단
생성기와 템플릿에서
capify!
메서드 사용 중단. (Pull Request)rails dbconsole
및rails console
명령에 환경 이름을 일반 인수로 전달하는 것이 사용 중단되었습니다. 대신-e
옵션을 사용해야 합니다. (Commit)Rails::Application
하위 클래스를 사용하여 Rails 서버를 시작하는 것이 사용 중단되었습니다. (Pull Request)Rails 플러그인 템플릿에서
after_bundle
콜백 사용 중단. (Pull Request)
주목할 만한 변경 사항
모든 환경에 대해
config/database.yml
에 공유 섹션을 추가했습니다. (Pull Request)플러그인 생성기에
railtie.rb
를 추가했습니다. (Pull Request)tmp:clear
작업에서 스크린샷 파일을 정리합니다. (Pull Request)bin/rails app:update
를 실행할 때 사용되지 않는 구성 요소를 건너뜁니다. 초기 앱 생성 시 Action Cable, Active Record 등이 생략된 경우 업데이트 작업에서도 해당 생략이 유지됩니다. (Pull Request)rails dbconsole
명령에 사용자 지정 연결 이름을 전달할 수 있습니다. 3단계 데이터베이스 구성을 사용하는 경우 예:bin/rails dbconsole -c replica
. (Commit)console
및dbconsole
명령에서 환경 이름에 대한 단축키를 제대로 확장합니다. (Commit)기본
Gemfile
에bootsnap
을 추가했습니다. (Pull Request)rails runner
에서 stdin에서 스크립트를 실행할 수 있도록-
를 지원합니다. (Pull Request)새로 생성된 Rails 애플리케이션에
Gemfile
에ruby x.x.x
버전과 루트 디렉토리에.ruby-version
파일이 포함되어 있습니다. (Pull Request)플러그인 생성기에
--skip-action-cable
옵션을 추가했습니다. (Pull Request)플러그인 생성기에
git_source
를Gemfile
에 추가했습니다. (Pull Request)Rails 플러그인에서 사용되지 않는 구성 요소를 건너뛰도록
bin/rails
를 수정했습니다. (Commit)생성기 작업의 들여쓰기를 최적화했습니다. (Pull Request)
라우트 들여쓰기를 최적화했습니다. (Pull Request)
플러그인 생성기에
--skip-yarn
옵션을 추가했습니다. (Pull Request)생성기의
gem
메서드에 여러 버전 인수를 지원했습니다. (Pull Request)개발 및 테스트 환경에서
secret_key_base
를 앱 이름에서 파생했습니다. (Pull Request)기본
Gemfile
에mini_magick
을 주석으로 추가했습니다. (Pull Request)rails new
및rails plugin new
에서 기본적으로Active Storage
를 사용합니다.--skip-active-storage
옵션으로 건너뛸 수 있으며,--skip-active-record
를 사용할 때 자동으로 건너뜁니다. (Pull Request)
Action Cable
자세한 변경 사항은 변경 로그를 참조하세요.
제거
- 사용되지 않는 evented redis 어댑터를 제거했습니다. (Commit)
주목할 만한 변경 사항
cable.yml에서
host
,port
,db
및password
옵션을 지원합니다. (Pull Request)PostgreSQL 어댑터에서 긴 스트림 식별자를 해시합니다. (Pull Request)
Action Pack
자세한 변경 사항은 변경 로그를 참조하세요.
제거
-
ActionController::ParamsParser::ParseError
를 제거했습니다. (Commit)
사용 중단
-
ActionDispatch::TestResponse
의#success?
,#missing?
및#error?
별칭을 사용 중단했습니다. (Pull Request)
주목할 만한 변경 사항
조각 캐싱에 재사용 가능한 캐시 키 지원을 추가했습니다. (Pull Request)
조각 캐시 키 형식을 디버깅하기 쉽게 변경했습니다. (Pull Request)
쿠키와 세션에 AEAD 암호화(GCM)를 사용했습니다. (Pull Request)
기본적으로 위조 방지를 적용했습니다. (Pull Request)
서버 측에서 서명/암호화된 쿠키 만료를 적용했습니다. (Pull Request)
쿠키의
:expires
옵션에ActiveSupport::Duration
객체를 지원했습니다. (Pull Request)Capybara에 등록된
:puma
서버 구성을 사용했습니다. (Pull Request)쿠키 미들웨어를 단순화하고 키 교체 지원을 추가했습니다. (Pull Request)
HTTP/2에 대한 Early Hints 기능을 추가했습니다. (Pull Request)
System Tests에 헤드리스 Chrome 지원을 추가했습니다. (Pull Request)
redirect_back
메네, 계속해서 Rails 5.2 릴리스 노트의 한국어 번역을 제공하겠습니다.
Action Pack
redirect_back
메서드에:allow_other_host
옵션을 추가했습니다. (Pull Request)assert_recognizes
가 마운트된 엔진을 탐색하도록 수정했습니다. (Pull Request)Content-Security-Policy 헤더를 구성하기 위한 DSL을 추가했습니다. (Pull Request, Commit, Commit)
현대 브라우저에서 지원되는 가장 일반적인 오디오/비디오/폰트 MIME 유형을 등록했습니다. (Pull Request)
시스템 테스트 스크린샷 출력을 기본값인
inline
에서simple
로 변경했습니다. (Commit)System Tests에 헤드리스 Firefox 지원을 추가했습니다. (Pull Request)
기본 헤더에 안전한
X-Download-Options
및X-Permitted-Cross-Domain-Policies
를 추가했습니다. (Commit)시스템 테스트에서 사용자가 다른 서버를 지정하지 않은 경우에만 Puma를 기본 서버로 설정하도록 변경했습니다. (Pull Request)
기본 헤더에
Referrer-Policy
헤더를 추가했습니다. (Commit)ActionController::Parameters#each
의 동작을Hash#each
와 일치시켰습니다. (Pull Request)Rails UJS에 대한 자동 nonce 생성 지원을 추가했습니다. (Commit)
기본 HSTS max-age 값을 31536000초(1년)로 업데이트하여 https://hstspreload.org/의 최소 max-age 요구 사항을 충족하도록 했습니다. (Commit)
cookies
에 대해to_hash
별칭 메서드를,session
에 대해to_h
별칭 메서드를 추가했습니다. (Commit)
Action View
자세한 변경 사항은 변경 로그를 참조하세요.
제거
- 사용되지 않는 Erubis ERB 핸들러를 제거했습니다. (Commit)
사용 중단
-
image_alt
헬퍼가 사용 중단되었습니다. 이 헬퍼는image_tag
로 생성된 이미지에 기본 alt 텍스트를 추가했습니다. (Pull Request)
주목할 만한 변경 사항
JSON Feeds를 지원하기 위해
auto_discovery_link_tag
에:json
유형을 추가했습니다. (Pull Request)image_tag
헬퍼에srcset
옵션을 추가했습니다. (Pull Request)field_error_proc
이optgroup
과 선택 구분자option
을 래핑하는 문제를 수정했습니다. (Pull Request)form_with
가 기본적으로 id를 생성하도록 변경했습니다. (Commit)preload_link_tag
헬퍼를 추가했습니다. (Pull Request)그룹화된 선택에 대해 호출 가능한 객체를 그룹 메서드로 사용할 수 있게 했습니다. (Pull Request)
Action Mailer
자세한 변경 사항은 변경 로그를 참조하세요.
주목할 만한 변경 사항
Action Mailer 클래스에서 배달 작업을 구성할 수 있게 했습니다. (Pull Request)
assert_enqueued_email_with
테스트 헬퍼를 추가했습니다. (Pull Request)
Active Record
자세한 변경 사항은 변경 로그를 참조하세요.
제거
#migration_keys
를 제거했습니다. (Pull Request)Active Record 객체를 유형 변환할 때
quoted_id
에 대한 지원을 제거했습니다. (Commit)index_name_exists?
의default
인수를 제거했습니다. (Commit)연관 관계의
:class_name
에 클래스를 전달하는 것에 대한 지원을 제거했습니다. (Commit)initialize_schema_migrations_table
및initialize_internal_metadata_table
메서드를 제거했습니다. (Commit)supports_migrations?
메서드를 제거했습니다. (Commit)supports_primary_key?
메서드를 제거했습니다. (Commit)ActiveRecord::Migrator.schema_migrations_table_name
메서드를 제거했습니다. (Commit)#indexes
의name
인수를 제거했습니다. (Commit)#verify!
의 인수를 제거했습니다. (Commit).error_on_ignored_order_or_limit
구성을 제거했습니다. (Commit)#scope_chain
메서드를 제거했습니다. (Commit)#sanitize_conditions
메서드를 제거했습니다. (Commit)
사용 중단
supports_statement_cache?
가 사용 중단되었습니다. (Pull Request)ActiveRecord::Calculations
의count
및sum
에 인수와 블록을 동시에 전달하는 것이 사용 중단되었습니다. (Pull Request)Relation
에서arel
에 위임하는 것이 사용 중단되었습니다. (Pull Request)TransactionState
의set_state
메서드가 사용 중단되었습니다. (Commit)expand_hash_conditions_for_aggregates
가 대체 없이 사용 중단되었습니다. (Commit)
주목할 만한 변경 사항
동적 픽스처 접근자 메서드를 인수 없이 호출하면 이 유형의 모든 픽스처를 반환합니다. 이전에는 항상 빈 배열을 반환했습니다. (Pull Request)
Active Record 속성 리더를 재정의할 때 변경된 속성의 일관성을 수정했습니다. (Pull Request)
MySQL에 대한 내림차순 인덱스 지원을 추가했습니다. (Pull Request)
bin/rails db:forward
의 첫 번째 마이그레이션을 수정했습니다. (Commit)현재 마이그레이션이 존재하지 않는 경우
UnknownMigrationVersionError
오류를 발생시키도록 마이그레이션 이동 동작을 수정했습니다. (Commit)SchemaDumper.ignore_tables
를 데이터베이스 구조 덤프 rake 작업에서 존중하도록 했습니다. (Pull Request)새로운 버전화된 항목을 통해 재사용 가능한 캐시 키를 지원하도록
ActiveRecord::Base#cache_version
을 추가했습니다. 이에 따라ActiveRecord::Base#cache_key
는 더 이상 타임스탬프를 포함하지 않는 안정적인 키를 반환합니다. (Pull Request)캐스팅된 값이 nil인 경우 바인딩 매개변수 생성을 방지했습니다. (Pull Request)
픽스처 로드 성능 향상을 위해 일괄 INSERT를 사용했습니다. (Pull Request)
병합된 관계의 조인이 LEFT OUTER JOIN으로 변환되지 않도록 수정했습니다. (Pull Request)
트랜잭션 상태를 자식 트랜잭션에 적용하도록 수정했습니다. 이전에는 중첩 트랜잭션에서 외부 트랜잭션이 롤백되면 내부 트랜잭션의 레코드가 여전히 지속된 것으로 표시되었습니다. 이를 수정하여 부모 트랜잭션이 롤백될 때 자식 트랜잭네, 계속해서 Rails 5.2 릴리스 노트의 한국어 번역을 제공하겠습니다.
Active Record
주목할 만한 변경 사항
트랜잭션 상태를 자식 트랜잭션에 적용하도록 수정했습니다. 이전에는 중첩 트랜잭션에서 외부 트랜잭션이 롤백되면 내부 트랜잭션의 레코드가 여전히 지속된 것으로 표시되었습니다. 이를 수정하여 부모 트랜잭션이 롤백될 때 자식 트랜잭션의 레코드도 지속되지 않은 것으로 표시되도록 했습니다. (Commit)
조인을 포함하는 범위로 eager loading/preloading 연관 관계를 수정했습니다. (Pull Request)
sql.active_record
알림 구독자에 의해 발생한 오류가ActiveRecord::StatementInvalid
예외로 변환되지 않도록 방지했습니다. (Pull Request)레코드 일괄 처리(
find_each
,find_in_batches
,in_batches
)에서 쿼리 캐싱을 건너뛰도록 수정했습니다. (Commit)SQLite의 부울 직렬화를 1과 0을 사용하도록 변경했습니다. SQLite는 네이티브로 1과 0을 각각 true와 false로 인식하지만, 이전에는 ‘t'와 'f'를 직렬화했습니다. (Pull Request)
다중 매개변수 할당을 사용하여 구성된 값은 이제 단일 필드 폼 입력에 대한 렌더링에 유형 변환된 값을 사용합니다. (Commit)
모델 생성 시 더 이상
ApplicationRecord
가 생성되지 않습니다. 필요한 경우rails g application_record
로 생성할 수 있습니다. (Pull Request)Relation#or
는 이제references
만 다른 두 관계를 허용합니다.references
는where
에 의해 암시적으로 호출될 수 있기 때문입니다. (Commit)Relation#or
를 사용할 때 공통 조건을 추출하고 OR 조건 앞에 배치합니다. (Pull Request)binary
픽스처 헬퍼 메서드를 추가했습니다. (Pull Request)STI에 대한 역 연관 관계를 자동으로 추측하도록 수정했습니다. (Pull Request)
LockWaitTimeout
새 오류 클래스를 추가했습니다. 이 오류는 잠금 대기 시간 초과 시 발생합니다. (Pull Request)sql.active_record
계측을 위한 페이로드 이름을 더 설명적으로 업데이트했습니다. (Pull Request)데이터베이스에서 인덱스를 제거할 때 제공된 알고리즘을 사용하도록 수정했습니다. (Pull Request)
Relation#where
에Set
을 전달하는 것이 배열을 전달하는 것과 동일하게 동작하도록 수정했습니다. (Commit)PostgreSQL
tsrange
가 이제 하위 초 정밀도를 유지합니다. (Pull Request)더러운 레코드에서
lock!
을 호출하면 오류를 발생시키도록 수정했습니다. (Commit)SQLite 어댑터를 사용할 때
db/schema.rb
에 인덱스 열 순서가 올바르게 작성되지 않는 버그를 수정했습니다. (Pull Request)bin/rails db:migrate
에서 지정된VERSION
을 수정했습니다.bin/rails db:migrate
에 빈VERSION
을 전달하면VERSION
없이 동작합니다.VERSION
형식을 확인: 마이그레이션 버전 번호 또는 마이그레이션 파일 이름을 허용합니다. 형식이 잘못된 경우 오류를 발생시킵니다. 대상 마이그레이션이 존재하지 않는 경우 오류를 발생시킵니다. (Pull Request)StatementTimeout
새 오류 클래스를 추가했습니다. 이 오류는 문장 시간 초과 시 발생합니다. (Pull Request)update_all
이 이제 값을Type#serialize
에 전달하기 전에Type#cast
를 통과시킵니다. 따라서update_all(foo: 'true')
가 부울을 올바르게 지속시킬 수 있습니다. (Commit)관계 쿼리 메서드에서 사용되는 원시 SQL 조각을 명시적으로 표시하도록 요구합니다. (Commit, Commit)
새 열을 채우는 등 마이그레이션 시 위쪽으로만 관련된 코드를 위해
#up_only
를 추가했습니다. (Pull Request)QueryCanceled
새 오류 클래스를 추가했습니다. 이 오류는 사용자 요청으로 인해 문장이 취소될 때 발생합니다. (Pull Request)Relation
의 인스턴스 메서드와 충돌하는 범위를 정의할 수 없도록 수정했습니다. (Pull Request)add_index
에 PostgreSQL 연산자 클래스 지원을 추가했습니다. (Pull Request)데이터베이스 쿼리 호출자 로깅을 추가했습니다. (Pull Request, Pull Request, Pull Request)
열 정보를 재설정할 때 자식 클래스의 속성 메서드를 정의 해제했습니다. (Pull Request)
limit
또는offset
이 있는delete_all
에 하위 쿼리를 사용했습니다. (Commit)first(n)
과limit()
의 불일치를 수정했습니다.first(n)
찾기 메서드는 이제limit()
을 존중하여relation.to_a.first(n)
과last(n)
의 동작과 일치합니다. (Pull Request)저장되지 않은 부모 인스턴스의 중첩
has_many :through
연관 관계를 수정했습니다. (Commit)연관 관계 조건을 고려하여 연결된 레코드를 삭제했습니다. (Commit)
save
또는save!
가 호출된 후에도 파괴된 객체 변경을 허용하지 않도록 수정했습니다. (Commit)left_outer_joins
와 관련된 관계 병합 문제를 수정했습니다. (Pull Request)PostgreSQL 외부 테이블 지원을 추가했습니다. (Pull Request)
Active Record 객체를 복제할 때 트랜잭션 상태를 지웠습니다. (Pull Request)
composed_of
열을 사용하여 where 메서드에 Array 객체를 전달할 때 발생하는 확장 문제를 수정했습니다. (Pull Request)reflection.klass
가polymorphic?
가 아닌 경우 오류를 발생시키도록 수정했습니다. (Commit)MySQL 및 PostgreSQL의
#columns_for_distinct
를 수정하여ActiveRecord::FinderMethods#limited_ids_for
가 다른 테이블의 기본 키를 포함하는ORDER BY
열에도 올바른 기본 키 값을 사용할 수 있도록 했습니다. (Commit)부모 클래스가 삭제되지 않도록
dependent: :destroy
문제를 수정했습니다. (Commit)이전에는 단순히 버려진 연결만 주기적으로 정리되었지만, 이제 유휴 데이터베이스 연결도 연결 풀 정리기에 의해 정리됩니다. (Commit)
Active Model
자세한 변경 사항은 변경 로그를 참조하세요.
주목할 만한 변경 사항
ActiveModel::Errors
의#keys
및#values
메서드를 수정했습니다.#keys
는 이제 비어 있지 않은 메시지만 반환하고,#values
는 비어 있지 않은 값만 반환합니다. (Pull Request)ActiveModel::Errors
에#merge!
메서드를 추가했습니다. (Pull Request)길이 유효성 검사기 옵션에 Proc 또는 Symbol을 전달할 수 있게 했습니다. (Pull Request)
_confirmation
의 값이false
인 경우에도ConfirmationValidator
유효성 검사를 실행하도록 수정했습니다. (Pull Request)속성 API를 사용하는 모델에서 프로시저 기본값을 사네, 계속해서 Rails 5.2 릴리스 노트의 한국어 번역을 제공하겠습니다.
Active Model
주목할 만한 변경 사항
속성 API를 사용하는 모델에서 프로시저 기본값을 사용할 때 마샬링할 수 있도록 수정했습니다. (Commit)
직렬화 중 여러
:includes
와 옵션을 모두 유지하도록 수정했습니다. (Commit)
Active Support
자세한 변경 사항은 변경 로그를 참조하세요.
제거
콜백에 대한 문자열 필터
:if
및:unless
를 제거했습니다. (Commit)halt_callback_chains_on_return_false
옵션을 제거했습니다. (Commit)
사용 중단
Module#reachable?
메서드가 사용 중단되었습니다. (Pull Request)secrets.secret_token
이 사용 중단되었습니다. (Commit)
주목할 만한 변경 사항
HashWithIndifferentAccess
에fetch_values
를 추가했습니다. (Pull Request)Time#change
에:offset
지원을 추가했습니다. (Commit)ActiveSupport::TimeWithZone#change
에:offset
및:zone
지원을 추가했습니다. (Commit)감가 상각 알림에 gem 이름과 감가 상각 기한을 전달했습니다. (Pull Request)
버전화된 캐시 항목을 지원했습니다. 이를 통해 캐시 저장소가 캐시 키를 재활용할 수 있어 빈번한 변경이 있는 경우 저장 공간을 크게 절약할 수 있습니다. Active Record의
#cache_key
와#cache_version
분리 및 Action Pack의 조각 캐싱에서의 사용과 함께 작동합니다. (Pull Request)스레드 격리된 속성 싱글톤을 제공하는
ActiveSupport::CurrentAttributes
를 추가했습니다. 주요 사용 사례는 전체 시스템에서 쉽게 사용할 수 있도록 모든 요청별 속성을 유지하는 것입니다. (Pull Request)#singularize
및#pluralize
가 이제 지정된 로케일의 불가산 명사를 존중합니다. (Commit)class_attribute
에 기본값 옵션을 추가했습니다. (Pull Request)Date#prev_occurring
및Date#next_occurring
을 추가하여 지정된 다음/이전 요일을 반환할 수 있습니다. (Pull Request)모듈 및 클래스 속성 접근자에 기본값 옵션을 추가했습니다. (Pull Request)
캐시:
write_multi
. (Pull Request)ActiveSupport::MessageEncryptor
의 기본 암호화를 AES 256 GCM으로 변경했습니다. (Pull Request)테스트에서
Time.now
를 고정하는freeze_time
헬퍼를 추가했습니다. (Pull Request)HashWithIndifferentAccess
와 일관되게Hash#reverse_merge!
의 순서를 변경했습니다. (Pull Request)ActiveSupport::MessageVerifier
및ActiveSupport::MessageEncryptor
에 목적 및 만료 지원을 추가했습니다. (Pull Request)잘못된 옵션이 전달된 경우
String#camelize
가 피드백을 제공하도록 수정했습니다. (Pull Request)Module#delegate_missing_to
가 이제 대상이 nil인 경우DelegationError
를 발생시킵니다.Module#delegate
와 유사합니다. (Pull Request)ActiveSupport::EncryptedFile
및ActiveSupport::EncryptedConfiguration
을 추가했습니다. (Pull Request)프로덕션 앱 비밀번호를 저장하기 위한
config/credentials.yml.enc
를 추가했습니다. (Pull Request)MessageEncryptor
및MessageVerifier
에 키 교체 지원을 추가했습니다. (Pull Request)HashWithIndifferentAccess#transform_keys
에서 반환되는 인스턴스가 이제HashWithIndifferentAccess
입니다. (Pull Request)Hash#slice
가 이제 Ruby 2.5+ 내장 정의로 대체되었습니다. (Commit)IO#to_json
이 이제 배열로 변환하려고 시도하는 대신to_s
표현을 반환합니다. 이를 통해 읽을 수 없는 객체에 대해IO#to_json
이IOError
를 발생시키는 버그가 수정되었습니다. (Pull Request)Date#prev_day
,Date#next_day
와 일치하도록Time#prev_day
및Time#next_day
의 메서드 서명을 추가했습니다. 인수를 전달할 수 있도록 했습니다. (Commit)Date#prev_month
,Date#next_month
와 일치하도록Time#prev_month
및Time#next_month
의 메서드 서명을 추가했습니다. 인수를 전달할 수 있도록 했습니다. (Commit)Date#prev_year
,Date#next_year
와 일치하도록Time#prev_year
및Time#next_year
의 메서드 서명을 추가했습니다. 인수를 전달할 수 있도록 했습니다. (Commit)humanize
의 두문자어 지원을 수정했습니다. (Commit)TWZ 범위에서
Range#include?
를 허용했습니다. (Pull Request)캐시: 기본적으로 1kB 이상의 값에 대해 압축을 활성화했습니다. (Pull Request)
Redis 캐시 스토어. (Pull Request, Pull Request)
TZInfo::AmbiguousTime
오류를 처리했습니다. (Pull Request)MemCacheStore: 카운터 만료 지원. (Commit)
ActiveSupport::TimeZone.all
이 이제ActiveSupport::TimeZone::MAPPING
에 있는 시간대만 반환하도록 변경했습니다. (Pull Request)ActiveSupport::SecurityUtils.secure_compare
의 기본 동작을 변경하여 길이 정보가 누출되지 않도록 했습니다. 이전ActiveSupport::SecurityUtils.secure_compare
는fixed_length_secure_compare
로 이름이 변경되었으며, 전달된 문자열의 길이가 일치하지 않는 경우ArgumentError
를 발생시킵니다. (Pull Request)ETag 헤더와 같은 비민감 디지스트 생성에 SHA-1을 사용하도록 변경했습니다. (Pull Request, Pull Request)
assert_changes
는 이제from:
및to:
인수 조합에 관계없이 표현식이 변경되었음을 항상 어설션합니다. (Pull Request)ActiveSupport::Cache::Store
의read_multi
에 대한 계측을 추가했습니다. (Pull Request)assert_difference
의 첫 번째 인수로 해시를 지원했습니다. 이를 통해 동일한 어설션에서 여러 숫자 차이를 지정할 수 있습니다. (Pull Request)MemCache 및 Redis의
read_multi
및fetch_multi
속도 향상. 백엔드를 조회하기 전에 로컬 메모리 캐시에서 읽습니다. (Commit)
Active Job
자세한 변경 사항은 변경 로그를 참조하세요.
주목할 만한 변경 사항
-
ActiveJob::Base.discard_on
에 사용자 지정 처리를 허용하는 블록을 전달할 수 있게 했습니다. (Pull Request)
Ruby on Rails 가이드
자세한 변경 사항은 변경 로그를 참조하세요.
주목할 만한 변경 사항
Rails의 스레딩 및 코드 실행 가이드를 추가했습니다. (Pull Request)
Active Storage 개요 가이드를 추가했습니다. (Pull Request)
크레딧
Rails에 많은 시간을 보내 안정적이고 견고한 프레임워크로 만든 많은 기여자들의 전체 목록을 참조하세요. 모든 분들께 박수를 보냅니다.
action-view: https://github.com/rails/rails/blob/5-2-stable/actionview/네, 계속해서 Rails 5.2 릴리스 노트의 한국어 번역을 제공하겠습니다.
Ruby on Rails 가이드
주목할 만한 변경 사항
- Active Storage 개요 가이드를 추가했습니다. (Pull Request)
크레딧
Rails에 많은 시간을 보내 안정적이고 견고한 프레임워크로 만든 많은 기여자들의 전체 목록을 참조하세요. 모든 분들께 박수를 보냅니다.