Ruby on Rails 7.0 릴리스 노트
Rails 7.0의 주요 기능:
- Ruby 2.7.0+ 필수, Ruby 3.0+ 선호
Rails 7.0으로 업그레이드하기
기존 애플리케이션을 업그레이드하는 경우, 업데이트를 시작하기 전에 충분한 테스트 커버리지를 확보하는 것이 좋습니다. 또한 Rails 6.1로 먼저 업그레이드하고 애플리케이션이 여전히 예상대로 작동하는지 확인한 후에 Rails 7.0으로 업데이트를 시도해야 합니다. Rails 7.0으로 업그레이드할 때 주의해야 할 사항은 Upgrading Ruby on Rails 가이드에서 확인할 수 있습니다.
주요 기능
Railties
자세한 변경 사항은 Changelog를 참조하십시오.
제거된 기능
-
dbconsole
의config
제거.
사용 중단된 기능
주목할 만한 변경 사항
Sprockets는 이제 선택적 종속성
rails
gem은 더 이상sprockets-rails
에 의존하지 않습니다. 애플리케이션에서 여전히 Sprockets를 사용해야 하는 경우 Gemfile에sprockets-rails
를 추가해야 합니다.gem "sprockets-rails"
Action Cable
자세한 변경 사항은 Changelog를 참조하십시오.
제거된 기능
사용 중단된 기능
주목할 만한 변경 사항
Action Pack
자세한 변경 사항은 Changelog를 참조하십시오.
제거된 기능
ActionDispatch::Response.return_only_media_type_on_content_type
제거.Rails.config.action_dispatch.hosts_response_app
제거.ActionDispatch::SystemTestCase#host!
제거.fixture_file_upload
에fixture_path
를 상대 경로로 전달하는 기능 제거.
사용 중단된 기능
주목할 만한 변경 사항
Action View
자세한 변경 사항은 Changelog를 참조하십시오.
제거된 기능
-
Rails.config.action_view.raise_on_missing_translations
제거.
사용 중단된 기능
주목할 만한 변경 사항
button_to
가 Active Record 객체를 사용하여 URL을 생성할 때 HTTP 동사 [method]를 유추합니다.button_to("Do a POST", [:do_post_action, Workshop.find(1)]) # 이전 #=> <input type="hidden" name="_method" value="post" autocomplete="off" /> # 이후 #=> <input type="hidden" name="_method" value="patch" autocomplete="off" />
Action Mailer
자세한 변경 사항은 Changelog를 참조하십시오.
제거된 기능
-
ActionMailer::DeliveryJob
및ActionMailer::Parameterized::DeliveryJob
를ActionMailer::MailDeliveryJob
로 대체.
사용 중단된 기능
주목할 만한 변경 사항
Active Record
자세한 변경 사항은 Changelog를 참조하십시오.
제거된 기능
connected_to
에서database
키워드 인수 제거.ActiveRecord::Base.allow_unsafe_raw_sql
제거.configs_for
메서드의:spec_name
옵션 제거.Rails 4.2 및 4.1 형식의
ActiveRecord::Base
인스턴스 YAML 로드 지원 제거.PostgreSQL 데이터베이스에서
:interval
열을 사용할 때 발생하는 사용 중단 경고 제거.이제 interval 열은 문자열 대신
ActiveSupport::Duration
객체를 반환합니다.이전 동작을 유지하려면 모델에 다음 줄을 추가할 수 있습니다:
attribute :column, :string
"primary"
를 연결 사양 이름으로 사용하여 연결을 해결하는 사용 중단 지원 제거.ActiveRecord::Base
객체 인용 지원 제거.ActiveRecord::Base
객체에 대한 데이터베이스 값 형변환 지원 제거.type_cast
에 열을 전달하는 사용 중단 지원 제거.DatabaseConfig#config
메서드 제거.다음 Rake 작업 제거:
db:schema:load_if_ruby
db:structure:dump
db:structure:load
db:structure:load_if_sql
db:structure:dump:#{name}
db:structure:load:#{name}
db:test:load_structure
db:test:load_structure:#{name}
Model.reorder(nil).first
를 사용하여 비결정적 순서로 검색하는 사용 중단 지원 제거.Tasks::DatabaseTasks.schema_up_to_date?
에서environment
및name
인수 제거.Tasks::DatabaseTasks.dump_filename
제거.Tasks::DatabaseTasks.schema_file
제거.Tasks::DatabaseTasks.spec
제거.Tasks::DatabaseTasks.current_config
제거.ActiveRecord::Connection#allowed_index_name_length
제거.ActiveRecord::Connection#in_clause_length
제거.ActiveRecord::DatabaseConfigurations::DatabaseConfig#spec_name
제거.ActiveRecord::Base.connection_config
제거.ActiveRecord::Base.arel_attribute
제거.ActiveRecord::Base.configurations.default_hash
제거.ActiveRecord::Base.configurations.to_h
제거.ActiveRecord::Result#map!
및ActiveRecord::Result#collect!
제거.ActiveRecord::Base#remove_connection
제거.
사용 중단된 기능
-
Tasks::DatabaseTasks.schema_file_type
사용 중단.
주목할 만한 변경 사항
블록이 예상보다 빨리 반환될 때 트랜잭션 롤백.
이 변경 전에는 트랜잭션 블록이 빨리 반환되면 트랜잭션이 커밋되었습니다.
문제는 트랜잭션 블록 내부에서 발생한 시간 초과가 불완전한 트랜잭션을 커밋하게 만들었다는 것입니다. 이를 방지하기 위해 트랜잭션 블록이 롤백됩니다.
동일한 열에 대한 조건 병합이 더 이상 두 조건을 유지하지 않고 후자 조건으로 일관되게 대체됩니다.
# Rails 6.1 (IN 절이 병합 측 등호 조건으로 대체됨) Author.where(id: [david.id, mary.id]).merge(Author.where(id: bob)) # => [bob] # Rails 6.1 (두 충돌 조건이 모두 존재, 사용 중단됨) Author.where(id: david.id..mary.id).merge(Author.where(id: bob)) # => [] # Rails 6.1에서 rewhere를 사용하여 Rails 7.0의 동작으로 마이그레이션 Author.where(id: david.id..mary.id).merge(Author.where(id: bob), rewhere: true) # => [bob] # Rails 7.0 (IN 절과 동일한 동작, 병합 측 조건이 일관되게 대체됨) Author.where(id: [david.id, mary.id]).merge(Author.where(id: bob)) # => [bob] Author.where(id: david.id..mary.id).merge(Author.where(id: bob)) # => [bob]
Active Storage
자세한 변경 사항은 Changelog를 참조하십시오.
제거된 기능
사용 중단된 기능
주목할 만한 변경 사항
Active Model
자세한 변경 사항은 Changelog를 참조하십시오.
제거된 기능
ActiveModel::Errors
인스턴스를 해시로 열거하는 기능 제거.ActiveModel::Errors#to_h
제거.ActiveModel::Errors#slice!
제거.ActiveModel::Errors#values
제거.ActiveModel::Errors#keys
제거.ActiveModel::Errors#to_xml
제거.ActiveModel::Errors#messages
에 오류를 연결하는 기능 제거.ActiveModel::Errors#messages
에서 오류를clear
하는 기능 제거.ActiveModel::Errors#messages
에서 오류를delete
하는 기능 제거.ActiveModel::Errors#messages
에서[]=
를 사용하는 기능 제거.Rails 5.x 오류 형식의 Marshal 및 YAML 로드 지원 제거.
Rails 5.x
ActiveModel::AttributeSet
형식의 Marshal 로드 지원 제거.
사용 중단된 기능
주목할 만한 변경 사항
Active Support
자세한 변경 사항은 Changelog를 참조하십시오.
제거된 기능
config.active_support.use_sha1_digests
제거.URI.parser
제거.날짜 시간 범위에 값이 포함되는지 확인하기 위해
Range#include?
를 사용하는 기능 제거.ActiveSupport::Multibyte::Unicode.default_normalization_form
제거.
사용 중단된 기능
Array
,Range
,Date
,DateTime
,Time
,BigDecimal
,Float
,Integer
에서#to_s
에 형식을 전달하는 대신#to_fs
를 사용하도록 사용 중단.이 사용 중단은 Ruby 3.1의 최적화를 활용하여 일부 유형의 객체 보간 속도를 높이기 위한 것입니다.
새 애플리케이션에서는 이러한 클래스에서
#to_s
메서드가 재정의되지 않을 것이며, 기존 애플리케이션은config.active_support.disable_to_s_conversion
을 사용할 수 있습니다.
주목할 만한 변경 사항
Active Job
자세한 변경 사항은 Changelog를 참조하십시오.
제거된 기능
이전 콜백이
throw :abort
로 중단된 경우after_enqueue
/after_perform
콜백이 중단되지 않는 사용 중단된 동작 제거.:return_false_on_aborted_enqueue
옵션 제거.
사용 중단된 기능
-
Rails.config.active_job.skip_after_callbacks_if_terminated
사용 중단.
주목할 만한 변경 사항
Action Text
자세한 변경 사항은 Changelog를 참조하십시오.
제거된 기능
사용 중단된 기능
주목할 만한 변경 사항
Action Mailbox
자세한 변경 사항은 Changelog를 참조하십시오.
제거된 기능
Rails.application.credentials.action_mailbox.mailgun_api_key
제거.환경 변수
MAILGUN_INGRESS_API_KEY
제거.
사용 중단된 기능
주목할 만한 변경 사항
Ruby on Rails 가이드
자세한 변경 사항은 Changelog를 참조하십시오.
주목할 만한 변경 사항
크레딧
Rails에 많은 시간을 투자하여 안정적이고 강력한 프레임워크로 만든 모든 기여자의 전체 목록을 참조하십시오. 모든 분들께 박수를 보냅니다.
[action계속해서 텍스트를 한국어로 번역하겠습니다: