edge
더 많은 정보: rubyonrails.org에서 확인하세요: 더 많은 Ruby on Rails

루비 온 레일즈 6.0 릴리스 노트

Rails 6.0의 주요 기능:

이 릴리스 노트는 주요 변경 사항만 다룹니다. 다양한 버그 수정 및 변경 사항에 대해서는 변경 로그를 참조하거나 GitHub의 주요 Rails 저장소의 커밋 목록을 확인하십시오.

1 Rails 6.0으로 업그레이드하기

기존 애플리케이션을 업그레이드하는 경우, 업그레이드하기 전에 충분한 테스트 커버리지를 가지고 있는 것이 좋습니다. 또한, Rails 5.2로 먼저 업그레이드하고 애플리케이션이 예상대로 작동하는지 확인한 후에 Rails 6.0으로 업데이트를 시도해야 합니다. 업그레이드할 때 주의해야 할 사항은 Ruby on Rails 업그레이드 가이드에서 확인할 수 있습니다.

2 주요 기능

2.1 액션 메일박스

Pull Request

액션 메일박스는 컨트롤러와 유사한 메일박스로 들어오는 이메일을 라우팅할 수 있게 해줍니다. 액션 메일박스에 대해 더 자세히 알아보려면 액션 메일박스 기본 사항 가이드를 참조하십시오.

2.2 액션 텍스트

Pull Request

액션 텍스트는 Rails에 풍부한 텍스트 콘텐츠와 편집 기능을 제공합니다. 이에는 Trix 편집기가 포함되어 있으며, 서식, 링크, 인용구, 목록, 포함된 이미지 및 갤러리 등 모든 것을 처리합니다. Trix 편집기에서 생성된 풍부한 텍스트 콘텐츠는 애플리케이션의 기존 Active Record 모델과 연관된 자체 RichText 모델에 저장됩니다. 포함된 이미지(또는 기타 첨부 파일)는 Active Storage를 사용하여 자동으로 저장되고 포함된 RichText 모델과 연결됩니다.

액션 텍스트에 대해 더 자세히 알아보려면 액션 텍스트 개요 가이드를 참조하십시오.

2.3 병렬 테스트

Pull Request

병렬 테스트를 사용하면 테스트 스위트를 병렬로 실행할 수 있습니다. 프로세스 포크가 기본 방법이지만 스레딩도 지원됩니다. 병렬로 테스트를 실행하면 전체 테스트 스위트를 실행하는 시간이 줄어듭니다.

2.4 액션 케이블 테스트

Pull Request

액션 케이블 테스트 도구를 사용하면 연결, 채널, 브로드캐스트와 같은 액션 케이블 기능을 테스트할 수 있습니다.

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_toChannel::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::ParameterFilterActiveSupport::ParameterFilter를 선호하는 것으로 사용 중단합니다. (Pull Request)

  • 컨트롤러 레벨의 force_sslconfig.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_datasend_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 제거 사항

  • 폐기된 image_alt 헬퍼 제거. (커밋)

  • 기능이 이미 record_tag_helper 젬으로 이동된 빈 RecordTagHelper 모듈 제거. (커밋)

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 스코프로 이동. (풀 리퀘스트)

  • 등록된 MIME 유형에서만 형식을 허용. (풀 리퀘스트, 풀 리퀘스트)

  • 템플릿 및 부분 렌더링 서버 출력에 할당 추가. (풀 리퀘스트)

  • date_select 태그에 year_format 옵션 추가하여 연도 이름을 사용자 정의할 수 있도록 함. (풀 리퀘스트)

  • 자동 Content Security Policy를 위한 자동 nonce 생성을 지원하기 위해 javascript_include_tag 헬퍼에 nonce: true 옵션 추가. (풀 리퀘스트)

  • ActionView::Template 최종화기 비활성화 또는 활성화를 위한 action_view.finalize_compiled_template_methods 구성 추가. (풀 리퀘스트)

  • rails_ujs에서 JavaScript confirm 호출을 독립적이고 오버라이드 가능한 메서드로 추출합니다. (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)

  • DeliveryJobParameterized::DeliveryJobMailDeliveryJob를 선호하는 대신 폐기합니다. (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_pathsconnection.assume_migrated_upto_version에 전달하는 것을 폐기합니다. (Commit)

  • ActiveRecord::Result#to_hashActiveRecord::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:dumprails 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#sizeAssociations::CollectionAssociation#empty?가 로드된 연관된 ID를 사용하도록 수정합니다. (Pull Request)

  • 모든 레코드가 요청한 연관을 가지고 있지 않을 때 다형성 연관의 연관을 미리로드하는 기능을 추가합니다. (Commit)

  • ActiveRecord::Relationtouch_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.queueconfig.active_storage.queues.analysisconfig.active_storage.queues.purge로 대체하기 위해 폐지합니다. (Pull Request)

  • ActiveStorage::DownloadingActiveStorage::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#downloadActiveStorage::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)

  • BigDecimalFloat의 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#firstString#last에 대한 음수 정수 인수 사용을 폐기합니다. (Pull Request)

  • ActiveSupport::Multibyte::Unicode#downcase/upcase/swapcaseString#downcase/upcase/swapcase 대신 폐기합니다. (Pull Request)

  • ActiveSupport::Multibyte::Unicode#normalizeActiveSupport::Multibyte::Chars#normalizeString#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#ordinalActiveSupport::Inflector#ordinalize에 대한 I18n을 통한 번역 지원을 추가합니다. (풀 리퀘스트)

  • Date, DateTime, TimeTimeWithZonebefore?after? 메서드를 추가합니다. (풀 리퀘스트)

  • 혼합된 유니코드/이스케이프된 문자 입력에서 URI.unescape가 실패하는 버그를 수정합니다. (풀 리퀘스트)

  • 압축이 활성화되었을 때 ActiveSupport::Cache가 저장 크기를 대량으로 증가시키는 버그를 수정합니다. (풀 리퀘스트)

  • Redis 캐시 스토어에서 delete_matched가 더 이상 Redis 서버를 차단하지 않습니다. (풀 리퀘스트)

  • ActiveSupport::TimeZone.allActiveSupport::TimeZone::MAPPING에서 정의된 모든 시간대에 대해 tzinfo 데이터가 누락되었을 때 실패하는 버그를 수정합니다. (풀 리퀘스트)

  • Enumerable#index_with를 추가하여 열거 가능한 항목에서 블록에서 반환되는 값 또는 기본 인수의 값을 사용하여 해시를 생성할 수 있도록 합니다. (풀 리퀘스트)

  • Range#===Range#cover? 메서드가 Range 인수와 함께 작동하도록 합니다. (풀 리퀘스트)

  • RedisCacheStore의 increment/decrement 작업에서 키 만료를 지원합니다. (풀 리퀘스트)

  • 로그 구독자 이벤트에 CPU 시간, 유휴 시간 및 할당 기능을 추가합니다. (풀 리퀘스트)

  • Active Support 알림 시스템에 이벤트 객체 지원을 추가합니다. (풀 리퀘스트)

  • ActiveSupport::Cache#fetchnil 항목을 캐시하지 않도록 새로운 skip_nil 옵션을 도입하여 지원합니다. (풀 리퀘스트)

  • 블록에서 true 값을 반환하는 요소를 제거하고 반환하는 Array#extract! 메서드를 추가합니다. (풀 리퀘스트)

  • HTML 안전한 문자열을 슬라이싱한 후에도 HTML 안전한 상태를 유지합니다. (풀 리퀘스트)

  • 로깅을 통해 상수 자동로드를 추적할 수 있도록 지원합니다. (커밋)

  • unfreeze_timetravel_back의 별칭으로 정의합니다. (풀 리퀘스트)

  • ActiveSupport::TaggedLogging.new를 인수로 받은 로거 인스턴스를 변경하는 대신 새로운 로거 인스턴스를 반환하도록 변경합니다. (풀 리퀘스트)

  • #delete_prefix, #delete_suffix#unicode_normalize 메서드를 HTML 안전하지 않은 메서드로 처리합니다. (풀 리퀘스트)

  • ActiveSupport::HashWithIndifferentAccess#without에서 심볼 인수로 실패하는 버그를 수정합니다. (풀 리퀘스트)

  • Module#parent, Module#parentsModule#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_valuesHash#deep_transform_values!를 추가합니다. (Commit)

  • ActiveSupport::HashWithIndifferentAccess#assoc를 추가합니다. (Pull Request)

  • CurrentAttributesbefore_reset 콜백을 추가하고 after_resetresets의 별칭으로 정의합니다. (Pull Request)

  • ActiveSupport::Notifications.unsubscribe를 수정하여 정규식이나 다중 패턴 구독자를 올바르게 처리합니다. (Pull Request)

  • Zeitwerk를 사용한 새로운 자동로딩 메커니즘을 추가합니다. (Commit)

  • Array#includingEnumerable#including을 추가하여 컬렉션을 편리하게 확장합니다. (Commit)

  • Array#withoutEnumerable#withoutArray#excludingEnumerable#excluding으로 이름을 변경합니다. 이전 메서드 이름은 별칭으로 유지됩니다. (Commit)

  • transliterateparameterizelocale을 제공하는 기능을 추가합니다. (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 제거

12.2 사용 중지

12.3 주목할만한 변경 사항

  • Active Job 인수에 대한 사용자 정의 직렬화기 지원을 추가합니다. (Pull Request)

  • Active Job을 enqueued된 시간대에서 실행할 수 있도록 지원을 추가합니다. (Pull Request)

  • retry_on/discard_on에 여러 예외를 전달할 수 있도록 합니다. (Commit)

  • 블록 없이 assert_enqueued_withassert_enqueued_email_with를 호출할 수 있도록 합니다. (Pull Request)

  • enqueueenqueue_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 포럼에서 환영합니다.