1 Rails 6.0으로 업그레이드하기
기존 애플리케이션을 업그레이드하는 경우, 업그레이드하기 전에 충분한 테스트 커버리지를 가지고 있는 것이 좋습니다. 또한, Rails 5.2로 먼저 업그레이드하고 애플리케이션이 예상대로 작동하는지 확인한 후에 Rails 6.0으로 업데이트를 시도해야 합니다. 업그레이드할 때 주의해야 할 사항은 Ruby on Rails 업그레이드 가이드에서 확인할 수 있습니다.
2 주요 기능
2.1 액션 메일박스
액션 메일박스는 컨트롤러와 유사한 메일박스로 들어오는 이메일을 라우팅할 수 있게 해줍니다. 액션 메일박스에 대해 더 자세히 알아보려면 액션 메일박스 기본 사항 가이드를 참조하십시오.
2.2 액션 텍스트
액션 텍스트는 Rails에 풍부한 텍스트 콘텐츠와 편집 기능을 제공합니다. 이에는 Trix 편집기가 포함되어 있으며, 서식, 링크, 인용구, 목록, 포함된 이미지 및 갤러리 등 모든 것을 처리합니다. Trix 편집기에서 생성된 풍부한 텍스트 콘텐츠는 애플리케이션의 기존 Active Record 모델과 연관된 자체 RichText 모델에 저장됩니다. 포함된 이미지(또는 기타 첨부 파일)는 Active Storage를 사용하여 자동으로 저장되고 포함된 RichText 모델과 연결됩니다.
액션 텍스트에 대해 더 자세히 알아보려면 액션 텍스트 개요 가이드를 참조하십시오.
2.3 병렬 테스트
병렬 테스트를 사용하면 테스트 스위트를 병렬로 실행할 수 있습니다. 프로세스 포크가 기본 방법이지만 스레딩도 지원됩니다. 병렬로 테스트를 실행하면 전체 테스트 스위트를 실행하는 시간이 줄어듭니다.
2.4 액션 케이블 테스트
액션 케이블 테스트 도구를 사용하면 연결, 채널, 브로드캐스트와 같은 액션 케이블 기능을 테스트할 수 있습니다.
3 Railties
자세한 변경 사항은 변경 로그를 참조하십시오.
3.1 제거 사항
플러그인 템플릿 내에서 사용되는
after_bundle
도우미를 제거했습니다. (커밋)config.ru
에서 응용 프로그램 클래스를run
의 인수로 사용하는 것을 지원하지 않도록 제거했습니다. (커밋)레일즈 명령에서
environment
인수를 제거했습니다. (커밋)생성기 및 템플릿에서
capify!
메서드를 제거했습니다. (커밋)config.secret_token
을 제거했습니다. (커밋)
3.2 폐지 사항
rails server
에 Rack 서버 이름을 일반 인수로 전달하는 것을 폐지했습니다. (Pull Request)HOST
환경 변수를 사용하여 서버 IP를 지정하는 기능을 지원하지 않도록 지원 중단합니다. (Pull Request)config_for
에서 반환된 해시에 대해 심볼이 아닌 키로 액세스하는 것을 지원하지 않도록 지원 중단합니다. (Pull Request)
3.3 주목할만한 변경 사항
rails server
명령에 서버를 지정하기 위해 명시적인--using
또는-u
옵션을 추가합니다. (Pull Request)rails routes
의 출력을 확장된 형식으로 볼 수 있는 기능을 추가합니다. (Pull Request)인라인 Active Job 어댑터를 사용하여 시드 데이터베이스 작업을 실행합니다. (Pull Request)
애플리케이션의 데이터베이스를 변경하기 위한
rails db:system:change
명령을 추가합니다. (Pull Request)rails test:channels
명령을 추가하여 Action Cable 채널만 테스트할 수 있도록 합니다. (Pull Request)DNS rebinding 공격에 대한 보호 기능을 도입합니다. (Pull Request)
생성기 명령을 실행하는 동안 실패 시 중단할 수 있는 기능을 추가합니다. (Pull Request)
Rails 6에서 Webpacker를 기본 JavaScript 컴파일러로 설정합니다. (Pull Request)
rails db:migrate:status
명령에 여러 데이터베이스 지원을 추가합니다. (Pull Request)생성기에서 여러 데이터베이스의 다른 마이그레이션 경로를 사용할 수 있는 기능을 추가합니다. (Pull Request)
다중 환경 인증 정보를 지원합니다. (Pull Request)
테스트 환경에서 기본 캐시 저장소로
null_store
를 사용합니다. (Pull Request)
4 Action Cable
자세한 변경 사항은 Changelog을 참조하십시오.
4.1 제거 사항
ActionCable.startDebugging()
및ActionCable.stopDebugging()
을ActionCable.logger.enabled
로 대체합니다. (Pull Request)
4.2 지원 중단 사항
- Rails 6.0에서 Action Cable에 대한 지원 중단 사항은 없습니다.
4.3 주목할만한 변경 사항
cable.yml
에서 PostgreSQL 구독 어댑터에 대한channel_prefix
옵션을 지원합니다. (Pull Request)ActionCable::Server::Base
에 사용자 정의 구성을 전달할 수 있도록 합니다. (Pull Request):action_cable_connection
및:action_cable_channel
로드 후크를 추가합니다. (Pull Request)Channel::Base#broadcast_to
및Channel::Base.broadcasting_for
를 추가합니다. (Pull Request)ActionCable::Connection
에서reject_unauthorized_connection
을 호출할 때 연결을 닫습니다. (Pull Request)Action Cable JavaScript 패키지를 CoffeeScript에서 ES2015로 변환하고 npm 배포에서 소스 코드를 게시합니다. (Pull Request)
WebSocket 어댑터 및 로거 어댑터의 구성을
ActionCable
의 속성에서ActionCable.adapters
로 이동합니다. (Pull Request)Redis 어댑터에
id
옵션을 추가하여 Action Cable의 Redis 연결을 구분합니다. (Pull Request)
5 Action Pack
자세한 변경 사항은 Changelog을 참조하십시오.
5.1 제거 사항
combined_fragment_cache_key
를 선호하는fragment_cache_key
도우미를 사용 중단합니다. (Commit)ActionDispatch::TestResponse
에서 사용 중단된 메서드를 제거합니다:#success?
를#successful?
로,#missing?
을#not_found?
로,#error?
를#server_error?
로 대체합니다. (Commit)
5.2 지원 중단 사항
ActionDispatch::Http::ParameterFilter
를ActiveSupport::ParameterFilter
를 선호하는 것으로 사용 중단합니다. (Pull Request)컨트롤러 레벨의
force_ssl
을config.force_ssl
로 대체하는 것으로 사용 중단합니다. (Pull Request)
5.3 주목할만한 변경 사항
ActionDispatch::Response#content_type
을 Content-Type 헤더로 반환하도록 변경. (풀 리퀘스트)리소스 파라미터에 콜론이 포함되어 있으면
ArgumentError
를 발생시킴. (풀 리퀘스트)특정 브라우저 기능을 정의하기 위해 블록을 사용하여
ActionDispatch::SystemTestCase.driven_by
호출 가능. (풀 리퀘스트)DNS 리바인딩 공격으로부터 보호하기 위한
ActionDispatch::HostAuthorization
미들웨어 추가. (풀 리퀘스트)ActionController::TestCase
에서parsed_body
사용 가능하도록 함. (풀 리퀘스트)as:
이름 지정 사양 없이 동일한 컨텍스트에서 여러 루트 라우트가 존재하는 경우ArgumentError
발생. (풀 리퀘스트)파라미터 파싱 오류 처리를 위해
#rescue_from
사용 가능하도록 함. (풀 리퀘스트)파라미터를 반복하는 데 사용할 수 있는
ActionController::Parameters#each_value
추가. (풀 리퀘스트)send_data
및send_file
에서 Content-Disposition 파일 이름 인코딩. (풀 리퀘스트)ActionController::Parameters#each_key
노출. (풀 리퀘스트)서명된/암호화된 쿠키 내부에 목적 및 만료 메타데이터 추가하여 쿠키의 값을 다른 쿠키로 복사하는 것을 방지. (풀 리퀘스트)
충돌하는
respond_to
호출에 대해ActionController::RespondToMismatchError
발생. (풀 리퀘스트)요청 형식에 대한 템플릿이 누락된 경우에 대한 명시적인 오류 페이지 추가. (풀 리퀘스트)
ActionDispatch::DebugExceptions.register_interceptor
도입, 렌더링되기 전에 예외를 처리하기 위한 방법. (풀 리퀘스트)요청당 하나의 Content-Security-Policy nonce 헤더 값만 출력. (풀 리퀘스트)
명시적으로 컨트롤러에 포함될 수 있는 Rails 기본 헤더 구성을 위한 모듈 추가. (풀 리퀘스트)
ActionDispatch::Request::Session
에#dig
추가. (풀 리퀘스트)
6 액션 뷰
자세한 변경 사항은 변경 로그를 참조하십시오.
6.1 제거 사항
6.2 폐기 사항
대체 없이
ActionView::Template.finalize_compiled_template_methods
를 폐기. (풀 리퀘스트)대체 없이
config.action_view.finalize_compiled_template_methods
를 폐기. (풀 리퀘스트)options_from_collection_for_select
뷰 헬퍼에서 비공개 모델 메서드 호출 폐기. (풀 리퀘스트)
6.3 주목할만한 변경 사항
개발 모드에서 파일 변경 시에만 Action View 캐시를 지우고 개발 속도 향상. (풀 리퀘스트)
모든 Rails npm 패키지를
@rails
스코프로 이동. (풀 리퀘스트)템플릿 및 부분 렌더링 서버 출력에 할당 추가. (풀 리퀘스트)
date_select
태그에year_format
옵션 추가하여 연도 이름을 사용자 정의할 수 있도록 함. (풀 리퀘스트)자동 Content Security Policy를 위한 자동 nonce 생성을 지원하기 위해
javascript_include_tag
헬퍼에nonce: true
옵션 추가. (풀 리퀘스트)ActionView::Template
최종화기 비활성화 또는 활성화를 위한action_view.finalize_compiled_template_methods
구성 추가. (풀 리퀘스트)rails_ujs
에서 JavaScriptconfirm
호출을 독립적이고 오버라이드 가능한 메서드로 추출합니다. (Pull Request)UTF-8 인코딩을 강제하는
action_controller.default_enforce_utf8
구성 옵션을 추가합니다. 기본값은false
입니다. (Pull Request)로케일 키에 대한 I18n 키 스타일 지원을 submit 태그에 추가합니다. (Pull Request)
7 Action Mailer
자세한 변경 사항은 Changelog를 참조하세요.
7.1 제거된 사항
7.2 폐기된 사항
Action Mailbox를 선호하는 대신
ActionMailer::Base.receive
를 폐기합니다. (Commit)DeliveryJob
와Parameterized::DeliveryJob
를MailDeliveryJob
를 선호하는 대신 폐기합니다. (Pull Request)
7.3 주목할만한 변경 사항
일반 및 매개변수화된 메일을 전달하기 위해
MailDeliveryJob
를 추가합니다. (Pull Request)사용자 정의 이메일 전달 작업이 Action Mailer 테스트 어설션과 함께 작동하도록 허용합니다. (Pull Request)
블록을 사용하여 다중 파트 이메일에 대한 템플릿 이름을 지정할 수 있도록 합니다. (Pull Request)
deliver.action_mailer
알림의 페이로드에perform_deliveries
를 추가합니다. (Pull Request)perform_deliveries
가 false인 경우 이메일 전송이 건너뛰어졌음을 나타내는 로깅 메시지를 개선합니다. (Pull Request)블록 없이
assert_enqueued_email_with
를 호출할 수 있도록 합니다. (Pull Request)assert_emails
블록에서 대기 중인 메일 전달 작업을 수행합니다. (Pull Request)ActionMailer::Base
에서 옵저버와 인터셉터를 등록 해제할 수 있도록 합니다. (Pull Request)
8 Active Record
자세한 변경 사항은 Changelog를 참조하세요.
8.1 제거된 사항
트랜잭션 객체에서 폐기된
#set_state
를 제거합니다. (Commit)데이터베이스 어댑터에서 폐기된
#supports_statement_cache?
를 제거합니다. (Commit)데이터베이스 어댑터에서 폐기된
#insert_fixtures
를 제거합니다. (Commit)ActiveRecord::ConnectionAdapters::SQLite3Adapter#valid_alter_table_type?
를 폐기합니다. (Commit)블록이 전달될 때
sum
에 열 이름을 전달하는 지원을 제거합니다. (Commit)블록이 전달될 때
count
에 열 이름을 전달하는 지원을 제거합니다. (Commit)관계에서 누락된 메서드를 Arel로 위임하는 지원을 제거합니다. (Commit)
관계에서 누락된 메서드를 클래스의 비공개 메서드로 위임하는 지원을 제거합니다. (Commit)
#cache_key
에 대한 타임스탬프 이름 지정 지원을 제거합니다. (Commit)ActiveRecord::Migrator.migrations_path=
를 폐기합니다. (Commit)expand_hash_conditions_for_aggregates
를 폐기합니다. (Commit)
8.2 폐기된 사항
고유성 유효성 검사를 위한 대소문자 구별 정렬 비교에 대한 불일치를 폐기합니다. (Commit)
수신자 범위가 유출된 경우 클래스 레벨 질의 메서드 사용을 폐기합니다. (Pull Request)
config.active_record.sqlite3.represent_boolean_as_integer
를 폐기합니다. (Commit)migrations_paths
를connection.assume_migrated_upto_version
에 전달하는 것을 폐기합니다. (Commit)ActiveRecord::Result#to_hash
를ActiveRecord::Result#to_a
로 대체하기 위해ActiveRecord::Result#to_hash
를 폐기합니다. (Commit)DatabaseLimits
의 메서드인column_name_length
,table_name_length
,columns_per_table
,indexes_per_table
,columns_per_multicolumn_index
,sql_query_length
,joins_per_query
를 폐기합니다. (Commit)update_attributes
/!
를update
/!
로 대체하기 위해update_attributes
/!
를 폐기합니다. (Commit)
8.3 주목할만한 변경 사항
-
sqlite3
젬의 최소 버전을 1.4로 올립니다. (Pull Request) rails db:prepare
를 추가하여 데이터베이스가 존재하지 않을 경우 생성하고 마이그레이션을 실행합니다. (Pull Request)after_save_commit
콜백을 추가하여after_commit :hook, on: [ :create, :update ]
를 간편하게 사용할 수 있습니다. (Pull Request)관련된 레코드를 관계에서 추출하기 위해
ActiveRecord::Relation#extract_associated
를 추가합니다. (Pull Request)SQL 코멘트를 ActiveRecord::Relation 쿼리에 추가하기 위해
ActiveRecord::Relation#annotate
를 추가합니다. (Pull Request)데이터베이스에 Optimizer Hints를 설정하는 기능을 추가합니다. (Pull Request)
대량의 삽입을 수행하기 위한
insert_all
/insert_all!
/upsert_all
메서드를 추가합니다. (Pull Request)현재 환경의 각 데이터베이스 테이블을 잘라내고 시드를 로드하는
rails db:seed:replant
를 추가합니다. (Pull Request)unscope(:select).select(fields)
의 단축키인reselect
메서드를 추가합니다. (Pull Request)모든 enum 값에 대한 부정적인 스코프를 추가합니다. (Pull Request)
조건부 삭제를 위한
#destroy_by
와#delete_by
를 추가합니다. (Pull Request)자동으로 데이터베이스 연결을 전환하는 기능을 추가합니다. (Pull Request)
블록의 실행 동안 데이터베이스에 대한 쓰기를 방지하는 기능을 추가합니다. (Pull Request)
다중 데이터베이스를 지원하기 위한 연결 전환을 위한 API를 추가합니다. (Pull Request)
마이그레이션의 기본값으로 타임스탬프에 정밀도를 설정합니다. (Pull Request)
MySQL에서 텍스트와 blob 크기를 변경하기 위한
:size
옵션을 지원합니다. (Pull Request)dependent: :nullify
전략에서 다형성 관계에 대해 외래 키와 외래 타입 열을 모두 NULL로 설정합니다. (Pull Request)ActiveRecord::Relation#exists?
에ActionController::Parameters
의 허용된 인스턴스를 인수로 전달할 수 있도록 합니다. (Pull Request)Ruby 2.6에서 도입된 무한 범위를 지원하기 위해
#where
에 대한 지원을 추가합니다. (Pull Request)MySQL의 기본 create table 옵션으로
ROW_FORMAT=DYNAMIC
을 설정합니다. (Pull Request)ActiveRecord.enum
에 의해 생성된 스코프를 비활성화할 수 있는 기능을 추가합니다. (Pull Request)열에 대한 암시적 정렬을 구성할 수 있도록 합니다. (Pull Request)
PostgreSQL 최소 버전을 9.3으로 올리고, 9.1과 9.2의 지원을 중단합니다. (Pull Request)
enum의 값들을 변경하려고 할 때 에러를 발생시키고, 값을 동결합니다. (Pull Request)
ActiveRecord::StatementInvalid
오류의 SQL을 별도의 오류 속성으로 만들고, SQL 바인드를 별도의 오류 속성으로 포함시킵니다. (Pull Request)create_table
에:if_not_exists
옵션을 추가합니다. (Pull Request)rails db:schema:cache:dump
와rails db:schema:cache:clear
에 다중 데이터베이스 지원을 추가합니다. (Pull Request)ActiveRecord::Base.connected_to
의 데이터베이스 해시에 해시 및 URL 구성을 지원합니다. (Pull Request)MySQL에 대한 기본 표현식과 표현식 인덱스 지원을 추가합니다. (Pull Request)
change_table
마이그레이션 헬퍼에 대한index
옵션을 추가합니다. (Pull Request)마이그레이션에서
transaction
이 되돌아갈 때 이전에는 되돌아간 마이그레이션 내의 명령이 되돌아가지 않았습니다. 이 변경 사항은 이를 수정합니다. (Pull Request)ActiveRecord::Base.configurations=
을 심볼화된 해시로 설정할 수 있도록 허용합니다. (Pull Request)레코드가 실제로 저장된 경우에만 카운터 캐시를 업데이트하도록 수정합니다. (Pull Request)
SQLite 어댑터에 표현식 인덱스 지원을 추가합니다. (Pull Request)
연관된 레코드에 대한 autosave 콜백을 하위 클래스에서 재정의할 수 있도록 허용합니다. (Pull Request)
최소 MySQL 버전을 5.5.8로 올립니다. (Pull Request)
MySQL에서 기본적으로 utf8mb4 문자 집합을 사용하도록 변경합니다. (Pull Request)
#inspect
에서 민감한 데이터를 필터링하는 기능을 추가합니다. (Pull Request, Pull Request)ActiveRecord::Base.configurations
를 해시 대신 객체를 반환하도록 변경합니다. (Pull Request)어드바이저리 락을 비활성화하기 위한 데이터베이스 구성을 추가합니다. (Pull Request)
SQLite3 어댑터의
alter_table
메서드를 수정하여 외래 키를 복원합니다. (Pull Request)remove_foreign_key
의:to_table
옵션을 반전 가능하도록 허용합니다. (Pull Request)지정된 정밀도를 가진 MySQL 시간 유형의 기본값을 수정합니다. (Pull Request)
touch
옵션이Persistence#touch
메서드와 일관되도록 수정합니다. (Pull Request)마이그레이션에서 중복된 열 정의에 대해 예외를 발생시킵니다. (Pull Request)
최소 SQLite 버전을 3.8로 올립니다. (Pull Request)
부모 레코드가 중복된 자식 레코드와 함께 저장되지 않도록 수정합니다. (Pull Request)
Associations::CollectionAssociation#size
와Associations::CollectionAssociation#empty?
가 로드된 연관된 ID를 사용하도록 수정합니다. (Pull Request)모든 레코드가 요청한 연관을 가지고 있지 않을 때 다형성 연관의 연관을 미리로드하는 기능을 추가합니다. (Commit)
ActiveRecord::Relation
에touch_all
메서드를 추가합니다. (Pull Request)ActiveRecord::Base.base_class?
예측자를 추가합니다. (Pull Request)ActiveRecord::Store.store_accessor
에 사용자 정의 접두사/접미사 옵션을 추가합니다. (Pull Request)ActiveRecord::Base.find_or_create_by
/!
에서 SELECT/INSERT 경합 조건을 처리하기 위해ActiveRecord::Base.create_or_find_by
/!
를 추가합니다. 이는 데이터베이스의 고유 제약 조건을 활용합니다. (Pull Request)단일 값 플럭스를 위한 약식인
Relation#pick
을 추가합니다. (Pull Request)
9 Active Storage
자세한 변경 사항은 Changelog를 참조하십시오.
9.1 제거 사항
9.2 폐지 사항
config.active_storage.queue
를config.active_storage.queues.analysis
와config.active_storage.queues.purge
로 대체하기 위해 폐지합니다. (Pull Request)ActiveStorage::Downloading
을ActiveStorage::Blob#open
으로 대체하기 위해 폐지합니다. (Commit)이미지 변형을 생성하기 위해
mini_magick
을 직접 사용하는 것을image_processing
을 선호하도록 폐지합니다. (Commit)Active Storage의 ImageProcessing 변환기에서
:combine_options
를 대체 없이 폐지합니다. (Commit)
9.3 주요 변경 사항
BMP 이미지 변형 생성을 지원합니다. (Pull Request)
TIFF 이미지 변형 생성을 지원합니다. (Pull Request)
프로그레시브 JPEG 이미지 변형 생성을 지원합니다. (Pull Request)
ActiveStorage.routes_prefix
를 추가하여 Active Storage에서 생성된 라우트를 구성할 수 있습니다. (Pull Request)디스크 서비스에서 요청한 파일이 없을 때
ActiveStorage::DiskController#show
에서 404 Not Found 응답을 생성합니다. (Pull Request)ActiveStorage::Blob#download
및ActiveStorage::Blob#open
에서 요청한 파일이 없을 때ActiveStorage::FileNotFoundError
를 발생시킵니다. (Pull Request)Active Storage 예외가 상속하는 일반적인
ActiveStorage::Error
클래스를 추가합니다. (Commit)레코드에 할당된 업로드된 파일을 즉시 저장하는 대신 레코드가 저장될 때 저장소에 유지합니다. (Pull Request)
첨부 파일 컬렉션에 할당할 때 기존 파일을 추가하는 대신 교체할 수 있는 옵션을 추가합니다 (
@user.update!(images: [ ... ])
). 이 동작을 제어하기 위해config.active_storage.replace_on_assign_to_many
를 사용합니다. (Pull Request, Pull Request)기존의 Active Record 반사 메커니즘을 사용하여 정의된 첨부 파일을 반영할 수 있는 기능을 추가합니다. (Pull Request)
ActiveStorage::Blob#open
을 추가하여 블롭을 디스크의 임시 파일로 다운로드하고 임시 파일을 반환합니다. (Commit)Google Cloud Storage에서 스트리밍 다운로드를 지원합니다.
google-cloud-storage
젬의 1.11+ 버전이 필요합니다. (Pull Request)Active Storage 변형에
mini_magick
을 직접 사용하는 대신image_processing
젬을 사용합니다. (Pull Request)
10 Active Model
자세한 변경 사항은 Changelog를 참조하세요.
10.1 제거됨
10.2 폐기됨
10.3 주요 변경 사항
ActiveModel::Errors#full_message
의 형식을 사용자 정의할 수 있는 구성 옵션을 추가합니다. (Pull Request)has_secure_password
에 대한 속성 이름을 구성할 수 있는 지원을 추가합니다. (Pull Request)ActiveModel::Errors
에#slice!
메서드를 추가합니다. (Pull Request)특정 오류의 존재 여부를 확인하기 위해
ActiveModel::Errors#of_kind?
를 추가합니다. (Pull Request)타임스탬프에 대한
ActiveModel::Serializers::JSON#as_json
메서드를 수정합니다. (Pull Request)Active Record를 제외한 경우에도 타입 캐스트 이전의 값을 사용하여 numericality 유효성 검사기를 수정합니다. (Pull Request)
BigDecimal
및Float
의 numericality 동등성 유효성 검사를 수정하여 유효성 검사의 양쪽 끝에서BigDecimal
로 캐스트합니다. (Pull Request)다중 매개변수 시간 해시를 캐스팅할 때 연도 값을 수정합니다. (Pull Request)
부울 속성의 거짓인 부울 심볼을 false로 캐스팅합니다. (Pull Request)
ActiveModel::Type::Date
에 대한value_from_multiparameter_assignment
에서 매개변수를 변환하는 동안 올바른 날짜를 반환합니다. (Pull Request)에러 번역을 가져올 때
:errors
네임스페이스보다 먼저 부모 로케일로 되돌아가도록 수정합니다. (Pull Request)
11 Active Support
자세한 변경 사항은 Changelog를 참조하세요.
11.1 제거됨
Inflections
에서 폐기된#acronym_regex
메서드를 제거합니다. (Commit)Module#reachable?
메서드를 제거합니다. (Commit)대체 없이
Kernel#`
를 제거합니다. (Pull Request)
11.2 폐기됨
String#first
및String#last
에 대한 음수 정수 인수 사용을 폐기합니다. (Pull Request)ActiveSupport::Multibyte::Unicode#downcase/upcase/swapcase
를String#downcase/upcase/swapcase
대신 폐기합니다. (Pull Request)ActiveSupport::Multibyte::Unicode#normalize
및ActiveSupport::Multibyte::Chars#normalize
을String#unicode_normalize
를 사용하여 폐기합니다. (풀 리퀘스트)ActiveSupport::Multibyte::Chars.consumes?
을String#is_utf8?
을 사용하여 폐기합니다. (풀 리퀘스트)ActiveSupport::Multibyte::Unicode#pack_graphemes(array)
및ActiveSupport::Multibyte::Unicode#unpack_graphemes(string)
을 각각array.flatten.pack("U*")
및string.scan(/\X/).map(&:codepoints)
로 대체하여 폐기합니다. (풀 리퀘스트)
11.3 주목할만한 변경 사항
병렬 테스트를 지원합니다. (풀 리퀘스트)
String#strip_heredoc
가 문자열의 동결 상태를 보존하도록 합니다. (풀 리퀘스트)멀티바이트 문자 또는 그래프 클러스터를 깨지 않고 문자열을 최대 바이트 크기로 자르기 위해
String#truncate_bytes
를 추가합니다. (풀 리퀘스트)delegate
메서드에private
옵션을 추가하여 비공개 메서드로 위임할 수 있도록 합니다. 이 옵션은true/false
값을 받습니다. (풀 리퀘스트)ActiveSupport::Inflector#ordinal
및ActiveSupport::Inflector#ordinalize
에 대한 I18n을 통한 번역 지원을 추가합니다. (풀 리퀘스트)Date
,DateTime
,Time
및TimeWithZone
에before?
및after?
메서드를 추가합니다. (풀 리퀘스트)혼합된 유니코드/이스케이프된 문자 입력에서
URI.unescape
가 실패하는 버그를 수정합니다. (풀 리퀘스트)압축이 활성화되었을 때
ActiveSupport::Cache
가 저장 크기를 대량으로 증가시키는 버그를 수정합니다. (풀 리퀘스트)Redis 캐시 스토어에서
delete_matched
가 더 이상 Redis 서버를 차단하지 않습니다. (풀 리퀘스트)ActiveSupport::TimeZone.all
이ActiveSupport::TimeZone::MAPPING
에서 정의된 모든 시간대에 대해 tzinfo 데이터가 누락되었을 때 실패하는 버그를 수정합니다. (풀 리퀘스트)Enumerable#index_with
를 추가하여 열거 가능한 항목에서 블록에서 반환되는 값 또는 기본 인수의 값을 사용하여 해시를 생성할 수 있도록 합니다. (풀 리퀘스트)Range#===
및Range#cover?
메서드가Range
인수와 함께 작동하도록 합니다. (풀 리퀘스트)RedisCacheStore의
increment/decrement
작업에서 키 만료를 지원합니다. (풀 리퀘스트)로그 구독자 이벤트에 CPU 시간, 유휴 시간 및 할당 기능을 추가합니다. (풀 리퀘스트)
Active Support 알림 시스템에 이벤트 객체 지원을 추가합니다. (풀 리퀘스트)
ActiveSupport::Cache#fetch
에nil
항목을 캐시하지 않도록 새로운skip_nil
옵션을 도입하여 지원합니다. (풀 리퀘스트)블록에서 true 값을 반환하는 요소를 제거하고 반환하는
Array#extract!
메서드를 추가합니다. (풀 리퀘스트)HTML 안전한 문자열을 슬라이싱한 후에도 HTML 안전한 상태를 유지합니다. (풀 리퀘스트)
로깅을 통해 상수 자동로드를 추적할 수 있도록 지원합니다. (커밋)
unfreeze_time
을travel_back
의 별칭으로 정의합니다. (풀 리퀘스트)ActiveSupport::TaggedLogging.new
를 인수로 받은 로거 인스턴스를 변경하는 대신 새로운 로거 인스턴스를 반환하도록 변경합니다. (풀 리퀘스트)#delete_prefix
,#delete_suffix
및#unicode_normalize
메서드를 HTML 안전하지 않은 메서드로 처리합니다. (풀 리퀘스트)ActiveSupport::HashWithIndifferentAccess
의#without
에서 심볼 인수로 실패하는 버그를 수정합니다. (풀 리퀘스트)Module#parent
,Module#parents
및Module#parent_name
을 각각module_parent
,module_parents
,module_parent_name
으로 이름을 변경합니다. (풀 리퀘스트)ActiveSupport::ParameterFilter
를 추가합니다. (풀 리퀘스트)소수점이 있는 경우 기간이 전체 초로 반올림되는 버그를 수정합니다. (풀 리퀘스트)
ActiveSupport::HashWithIndifferentAccess
에서#to_options
를#symbolize_keys
의 별칭으로 만듭니다. (Pull Request)Concern에 동일한 블록이 여러 번 포함되어도 더 이상 예외를 발생시키지 않습니다. (Pull Request)
ActiveSupport::CacheStore#fetch_multi
에 전달된 키 순서를 보존합니다. (Pull Request)String#safe_constantize
를 수정하여 잘못된 대소문자 상수 참조에 대해LoadError
를 발생시키지 않습니다. (Pull Request)Hash#deep_transform_values
와Hash#deep_transform_values!
를 추가합니다. (Commit)ActiveSupport::HashWithIndifferentAccess#assoc
를 추가합니다. (Pull Request)CurrentAttributes
에before_reset
콜백을 추가하고after_reset
을resets
의 별칭으로 정의합니다. (Pull Request)ActiveSupport::Notifications.unsubscribe
를 수정하여 정규식이나 다중 패턴 구독자를 올바르게 처리합니다. (Pull Request)Zeitwerk를 사용한 새로운 자동로딩 메커니즘을 추가합니다. (Commit)
Array#including
과Enumerable#including
을 추가하여 컬렉션을 편리하게 확장합니다. (Commit)Array#without
와Enumerable#without
를Array#excluding
과Enumerable#excluding
으로 이름을 변경합니다. 이전 메서드 이름은 별칭으로 유지됩니다. (Commit)transliterate
와parameterize
에locale
을 제공하는 기능을 추가합니다. (Pull Request)Time#advance
를 수정하여 1001-03-07 이전의 날짜와 작동하도록 합니다. (Pull Request)ActiveSupport::Notifications::Instrumenter#instrument
를 업데이트하여 블록을 전달하지 않도록 허용합니다. (Pull Request)하위 클래스 추적기에서 알 수 없는 하위 클래스가 가비지 수집될 수 있도록 약한 참조를 사용합니다. (Pull Request)
with_info_handler
메서드를 사용하여 테스트 메서드를 호출하여 minitest-hooks 플러그인이 작동하도록 합니다. (Commit)ActiveSupport::SafeBuffer#*
에서html_safe?
상태를 보존합니다. (Pull Request)
12 Active Job
자세한 변경 사항은 Changelog를 참조하십시오.
12.1 제거
- Qu gem의 지원을 제거합니다. (Pull Request)
12.2 사용 중지
12.3 주목할만한 변경 사항
Active Job 인수에 대한 사용자 정의 직렬화기 지원을 추가합니다. (Pull Request)
Active Job을 enqueued된 시간대에서 실행할 수 있도록 지원을 추가합니다. (Pull Request)
retry_on
/discard_on
에 여러 예외를 전달할 수 있도록 합니다. (Commit)블록 없이
assert_enqueued_with
와assert_enqueued_email_with
를 호출할 수 있도록 합니다. (Pull Request)enqueue
와enqueue_at
의 알림을after_enqueue
콜백 대신around_enqueue
콜백으로 감싸도록 변경합니다. (Pull Request)블록 없이
perform_enqueued_jobs
를 호출할 수 있도록 합니다. (Pull Request)블록 없이
assert_performed_with
를 호출할 수 있도록 합니다. (Pull Request)작업 단언 도우미에
:queue
옵션을 추가합니다. (Pull Request)Active Job 재시도 및 폐기 주변에 훅을 추가합니다. (Pull Request)
작업 수행 시 인수의 하위 집합을 테스트하기 위한 방법을 추가합니다. (Pull Request)
Active Job 테스트 도우미에서 역직렬화된 인수를 작업에 포함합니다. (Pull Request)
Active Job 단언 도우미가
only
키워드에 대해 Proc를 허용하도록 합니다. (Pull Request)단언 도우미에서 작업 인수의 마이크로초와 나노초를 제거합니다. (Pull Request)
13 Ruby on Rails 가이드
자세한 변경 사항은 Changelog를 참조하십시오.
13.1 주목할만한 변경 사항
Active Record 가이드에 여러 개의 데이터베이스 추가. (Pull Request)
상수 자동로딩 문제 해결에 대한 문제 해결 섹션 추가. (Commit)
Action Mailbox Basics 가이드 추가. (Pull Request)
Action Text 개요 가이드 추가. (Pull Request)
14 크레딧
Rails를 안정적이고 견고한 프레임워크로 만들기 위해 많은 시간을 투자한 많은 사람들에게 Rails 기여자 전체 목록을 참조하세요. 그들 모두에게 경의를 표합니다.
피드백
이 가이드의 품질을 개선하는 데 도움을 주시기를 권장합니다.
오타나 사실적인 오류를 발견하면 기여해주십시오. 시작하려면 문서 기여 섹션을 읽어보세요.
불완전한 내용이나 최신 정보가 아닌 내용을 발견할 수도 있습니다. 주요한 부분에 누락된 문서를 추가해주세요. Edge 가이드에서 이미 문제가 해결되었는지 확인하세요. 스타일과 규칙은 Ruby on Rails 가이드 지침을 확인하세요.
수정할 내용을 발견했지만 직접 수정할 수 없는 경우 이슈를 열어주세요.
마지막으로, Ruby on Rails 문서에 관한 모든 토론은 공식 Ruby on Rails 포럼에서 환영합니다.