1 升級至 Rails 6.0
如果您要升級現有的應用程式,在開始之前,最好先有良好的測試涵蓋範圍。如果您尚未升級到 Rails 5.2,您也應該先升級到 Rails 5.2,並確保您的應用程式在嘗試更新到 Rails 6.0 之前,仍能如預期般執行。升級 Ruby on Rails 指南中提供了升級時需要注意的事項清單。
2 主要功能
2.1 Action Mailbox
Action Mailbox 讓您可以將收到的電子郵件路由到類似控制器的郵件信箱。您可以在 Action Mailbox 基礎 指南中閱讀更多關於 Action Mailbox 的資訊。
2.2 Action Text
Action Text 為 Rails 帶來了豐富的文字內容和編輯功能。它包含 Trix 編輯器,可處理從格式化到連結、引號、清單到嵌入式影像和圖庫的所有內容。Trix 編輯器產生的豐富文字內容儲存在其自己的 RichText 模型中,該模型與應用程式中的任何現有 Active Record 模型關聯。任何嵌入式影像(或其他附件)都會自動使用 Active Storage 儲存,並與包含的 RichText 模型關聯。
您可以在 Action Text 概觀 指南中閱讀更多關於 Action Text 的資訊。
2.3 平行測試
平行測試 讓您可以將測試套件平行化。雖然預設方法是分岔處理程序,但它也支援執行緒。平行執行測試可縮短整個測試套件執行的時間。
2.4 Action Cable 測試
Action Cable 測試工具 讓您可以在任何層級測試您的 Action Cable 功能:連線、頻道、廣播。
3 Railties
有關詳細變更,請參閱 變更記錄。
3.1 移除
移除外掛程式範本內已棄用的
after_bundle
輔助程式。(提交)移除已棄用的
config.ru
支援,該支援使用應用程式類別作為run
的引數。(提交)移除已棄用的
environment
引數,該引數來自 rails 指令。(提交)移除已棄用的
capify!
方法,該方法來自產生器和範本。(提交)移除已棄用的
config.secret_token
。(提交)
3.2 已棄用
已棄用將 Rack 伺服器名稱傳遞為常規引數至
rails server
。(Pull Request)已棄用使用
HOST
環境來指定伺服器 IP 的支援。(Pull Request)已棄用透過非符號鍵存取
config_for
回傳的雜湊。(Pull Request)
3.3 顯著變更
新增一個明確選項
--using
或-u
,用於指定rails server
指令的伺服器。(Pull Request)新增在展開格式中查看
rails routes
輸出的功能。(Pull Request)使用內嵌式 Active Job 介面執行種子資料庫任務。(Pull Request)
新增一個指令
rails db:system:change
,用於變更應用程式的資料庫。(Pull Request)新增
rails test:channels
指令,用於僅測試 Action Cable 通道。(Pull Request)引入防範 DNS 重新繫結攻擊的防護措施。(Pull Request)
新增在執行產生器指令時中止失敗的功能。(Pull Request)
將 Webpacker 設為 Rails 6 的預設 JavaScript 編譯器。(Pull Request)
為
rails db:migrate:status
指令新增多個資料庫支援。(Pull Request)新增在產生器中使用不同資料庫不同遷移路徑的能力。(Pull Request)
新增支援多環境認證。(Pull Request)
將
null_store
設為測試環境的預設快取儲存體。(Pull Request)
4 Action Cable
請參閱 變更日誌,了解詳細變更。
4.1 移除
- 用
ActionCable.logger.enabled
取代ActionCable.startDebugging()
和ActionCable.stopDebugging()
。(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)新增
id
選項至 Redis 適配器以區分 Action Cable 的 Redis 連線。(Pull Request)
5 Action Pack
請參閱 Changelog 以取得詳細變更內容。
5.1 移除
移除已棄用的
fragment_cache_key
輔助函式,改用combined_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 標頭。(Pull Request)如果資源參數包含冒號,則引發
ArgumentError
。(Pull Request)允許
ActionDispatch::SystemTestCase.driven_by
使用區塊呼叫來定義特定的瀏覽器功能。(Pull Request)新增
ActionDispatch::HostAuthorization
中介軟體,用於防範 DNS 重新繫結攻擊。(Pull Request)允許在
ActionController::TestCase
中使用parsed_body
。(Pull Request)當同一個內容中存在多個根路由,且沒有
as:
命名規格時,會引發ArgumentError
。(Pull Request)允許使用
#rescue_from
來處理參數解析錯誤。(Pull Request)新增
ActionController::Parameters#each_value
,用於遍歷參數。(Pull Request)在
send_data
和send_file
中對 Content-Disposition 檔案名稱進行編碼。(Pull Request)公開
ActionController::Parameters#each_key
。(Pull Request)在已簽署/加密的 Cookie 中新增目的和過期時間資訊,以防止將 Cookie 的值複製到另一個 Cookie 中。(Pull Request)
對於衝突的
respond_to
呼叫,會引發ActionController::RespondToMismatchError
。(Pull Request)當請求格式的範本不存在時,新增一個明確的錯誤頁面。(Pull Request)
引入
ActionDispatch::DebugExceptions.register_interceptor
,一種在 DebugExceptions 中掛鉤並處理異常的方式,在異常被呈現之前。(Pull Request)每個請求只輸出一個 Content-Security-Policy nonce 標頭值。(Pull Request)
新增一個模組,專門用於 Rails 預設標頭組態,可以明確包含在控制器中。(Pull Request)
新增
#dig
到ActionDispatch::Request::Session
。(Pull Request)
6 Action View
詳細變更內容,請參閱 變更紀錄。
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
範圍。(拉取請求)將配置新增至範本和部分渲染伺服器輸出。(拉取請求)
新增
year_format
選項至date_select
標籤,讓使用者可以自訂年份名稱。(拉取請求)新增
javascript_include_tag
輔助函式的nonce: true
選項,以支援內容安全政策的自動 nonce 產生。(拉取請求)新增
action_view.finalize_compiled_template_methods
組態,以停用或啟用ActionView::Template
完成器。(拉取請求)將 JavaScript
confirm
呼叫抽取至rails_ujs
中一個可覆寫的方法。(拉取請求)新增一個
action_controller.default_enforce_utf8
設定選項來處理強制 UTF-8 編碼。預設為false
。(Pull Request)新增 I18n 關鍵字樣式支援,以使用 locale 關鍵字提交標籤。(Pull Request)
7 Action Mailer
有關詳細變更,請參閱 變更日誌。
7.1 移除
7.2 已棄用
棄用
ActionMailer::Base.receive
,改用 Action Mailbox。(提交)棄用
DeliveryJob
和Parameterized::DeliveryJob
,改用MailDeliveryJob
。(Pull Request)
7.3 顯著變更
新增
MailDeliveryJob
,用於傳遞一般和參數化郵件。(Pull Request)允許自訂電子郵件傳遞工作與 Action Mailer 測試斷言搭配使用。(Pull Request)
允許為使用區塊的多重電子郵件指定範本名稱,而不僅僅使用動作名稱。(Pull Request)
新增
perform_deliveries
至deliver.action_mailer
通知的 payload。(Pull Request)當
perform_deliveries
為 false 時,改善記錄訊息,以指出已略過電子郵件傳送。(Pull Request)允許在沒有區塊的情況下呼叫
assert_enqueued_email_with
。(Pull Request)在
assert_emails
區塊中執行已排隊的郵件傳遞工作。(Pull Request)允許
ActionMailer::Base
取消註冊觀察者和攔截器。(Pull Request)
8 Active Record
請參閱 變更記錄 以取得詳細變更內容。
8.1 移除
移除交易物件中已棄用的
#set_state
。(提交)移除資料庫適配器中已棄用的
#supports_statement_cache?
。(提交)移除資料庫適配器中已棄用的
#insert_fixtures
。(提交)移除已棄用的
ActiveRecord::ConnectionAdapters::SQLite3Adapter#valid_alter_table_type?
。(提交)移除傳遞欄位名稱給
sum
的支援,當傳遞區塊時。(提交)移除傳遞欄位名稱給
count
的支援,當傳遞區塊時。(提交)移除關係中委派遺失方法給 Arel 的支援。(提交)
移除委派關係中遺失方法給類別私有方法的支援。(提交)
移除指定
#cache_key
時間戳名稱的支援。(提交)移除已棄用的
ActiveRecord::Migrator.migrations_path=
。(提交)移除已棄用的
expand_hash_conditions_for_aggregates
。(提交)
8.2 已棄用
已棄用唯一驗證器的區分大小寫校對比較不一致。(提交)
已棄用在接收者範圍外洩的情況下使用類別層級查詢方法。(Pull Request)
已棄用
config.active_record.sqlite3.represent_boolean_as_integer
。(提交)不再傳遞
migrations_paths
給connection.assume_migrated_upto_version
。(提交)不再使用
ActiveRecord::Result#to_hash
,改用ActiveRecord::Result#to_a
。(提交)不再使用
DatabaseLimits
中的方法:column_name_length
、table_name_length
、columns_per_table
、indexes_per_table
、columns_per_multicolumn_index
、sql_query_length
和joins_per_query
。(提交)不再使用
update_attributes
/!
,改用update
/!
。(提交)
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)新增
ActiveRecord::Relation#annotate
,用於將 SQL 註解新增至 ActiveRecord::Relation 查詢。(Pull Request)新增支援,用於在資料庫上設定最佳化提示。(Pull Request)
新增
insert_all
/insert_all!
/upsert_all
方法,用於執行大量插入。(Pull Request)新增
rails db:seed:replant
,用於截斷目前環境中每個資料庫的表格,並載入種子。(Pull Request)新增
reselect
方法,為unscope(:select).select(fields)
的簡寫。(Pull Request)新增所有列舉值的反向範圍。(Pull Request)
新增
#destroy_by
和#delete_by
,用於條件移除。(Pull Request)新增自動切換資料庫連線的功能。(Pull Request)
新增在區塊期間禁止寫入資料庫的功能。(Pull Request)
新增切換連線的 API,以支援多個資料庫。(Pull Request)
將具有精確度的時間戳設為遷移的預設值。(Pull Request)
支援
:size
選項,以變更 MySQL 中的文字和二進位大小。(Pull Request)對於
dependent: :nullify
策略的多型關聯,將外來金鑰和外來類型欄位都設為 NULL。(Pull Request)允許將
ActionController::Parameters
的已許可實例作為參數傳遞給ActiveRecord::Relation#exists?
。(Pull Request)在
#where
中新增支援 Ruby 2.6 中引入的無限範圍。(Pull Request)將
ROW_FORMAT=DYNAMIC
設為 MySQL 建立資料表的預設選項。(Pull Request)新增停用
ActiveRecord.enum
所產生範圍的功能。(Pull Request)將欄位的隱式排序設為可設定。(Pull Request)
將最低 PostgreSQL 版本升級為 9.3,不再支援 9.1 和 9.2。(Pull Request)
讓列舉值的凍結,在嘗試修改時引發錯誤。(Pull Request)
讓
ActiveRecord::StatementInvalid
錯誤的 SQL 成為其自己的錯誤屬性,並將 SQL 繫結包含為一個單獨的錯誤屬性。(Pull Request)新增
:if_not_exists
選項至create_table
。(Pull Request)新增對多個資料庫的支援至
rails db:schema:cache:dump
和rails db:schema:cache:clear
。(Pull Request)新增對雜湊和 URL 組態的支援至
ActiveRecord::Base.connected_to
的資料庫雜湊。(Pull Request)新增對 MySQL 的預設表達式和表達式索引的支援。(Pull Request)
新增
index
選項至change_table
遷移輔助程式。(Pull Request)修復
transaction
回復遷移。先前,在回復的遷移中transaction
內部的命令會以非反轉的方式執行。此變更修復了此問題。(Pull Request)允許使用符號化的雜湊設定
ActiveRecord::Base.configurations=
。(Pull Request)修復計數器快取,僅在實際儲存記錄時才更新。(Pull Request)
新增對 SQLite 介面的表達式索引支援。(Pull Request)
允許子類別重新定義關聯記錄的自動儲存回呼。(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)在 Migrations 中引發重複欄位定義的例外。(Pull Request)
將 SQLite 最低版本升級至 3.8。(Pull Request)
修正父記錄不會與重複的子記錄一起儲存。(Pull Request)
確保
Associations::CollectionAssociation#size
和Associations::CollectionAssociation#empty?
使用已載入的關聯 ID(如果存在)。(Pull Request)新增支援在非所有記錄都有要求關聯時預載多型關聯的關聯。(Commit)
新增
touch_all
方法至ActiveRecord::Relation
。(Pull Request)新增
ActiveRecord::Base.base_class?
謂詞。(Pull Request)新增自訂前綴/後綴選項至
ActiveRecord::Store.store_accessor
。(Pull Request)新增
ActiveRecord::Base.create_or_find_by
/!
以處理ActiveRecord::Base.find_or_create_by
/!
中的 SELECT/INSERT 競爭條件,方法是倚賴資料庫中的唯一約束。(Pull Request)新增
Relation#pick
作為單一值提取的簡寫。(Pull Request)
9 Active Storage
請參閱 變更記錄 以取得詳細變更內容。
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
。(提交)已過時的
mini_magick
,建議改用image_processing
來產生影像變體。(提交)已過時的 Active Storage ImageProcessing 轉換器中的
:combine_options
,無替代方案。(提交)
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)新增一個泛用的
ActiveStorage::Error
類別,Active Storage 例外會繼承自此類別。(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
,它會將 blob 下載到磁碟上的暫存檔案,並產生暫存檔案。(Commit)支援從 Google Cloud Storage 串流下載。需要
google-cloud-storage
gem 的 1.11+ 版本。(Pull Request)為 Active Storage 變體使用
image_processing
gem。這取代了直接使用mini_magick
。(Pull Request)
10 Active Model
請參閱 Changelog 以取得詳細變更。
10.1 移除
10.2 棄用
10.3 顯著變更
新增設定選項,以自訂
ActiveModel::Errors#full_message
的格式。(Pull Request)新增支援,以設定
has_secure_password
的屬性名稱。(Pull Request)新增
#slice!
方法至ActiveModel::Errors
。(Pull Request)新增
ActiveModel::Errors#of_kind?
,以檢查特定錯誤是否存在。(Pull Request)修正
ActiveModel::Serializers::JSON#as_json
方法,以處理時間戳記。(Pull Request)修正數值驗證器,以持續使用型別轉換前的值,但 Active Record 除外。(Pull Request)
修正
BigDecimal
和Float
的數值相等驗證,方法是將驗證兩端的數值轉換為BigDecimal
。(Pull Request)修正轉換多參數時間雜湊時,年份值的問題。(Pull Request)
將布林屬性上的虛假布林符號型別轉換為 false。(Pull Request)
在
ActiveModel::Type::Date
的value_from_multiparameter_assignment
中轉換參數時,傳回正確的日期。(Pull Request)在擷取錯誤翻譯時,在回退到
:errors
名稱空間之前,先回退到父系語言環境。(Pull Request)
11 Active Support
請參閱 變更日誌,以取得詳細變更。
11.1 移除
從
Inflections
中移除已棄用的#acronym_regex
方法。(提交)移除已棄用的
Module#reachable?
方法。(提交)移除
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
。(Pull Request)不再使用
ActiveSupport::Multibyte::Chars.consumes?
,改用String#is_utf8?
。(Pull Request)不再使用
ActiveSupport::Multibyte::Unicode#pack_graphemes(array)
和ActiveSupport::Multibyte::Unicode#unpack_graphemes(string)
,改用array.flatten.pack("U*")
和string.scan(/\X/).map(&:codepoints)
。(Pull Request)
11.3 值得注意的變更
新增對平行測試的支持。(Pull Request)
確保
String#strip_heredoc
保留字串的凍結狀態。(Pull Request)新增
String#truncate_bytes
以將字串截斷為最大位元組大小,同時不會中斷多位元組字元或字形群組。(Pull Request)新增
private
選項至delegate
方法,以便委派至私有方法。此選項接受true/false
作為值。(Pull Request)新增對
ActiveSupport::Inflector#ordinal
和ActiveSupport::Inflector#ordinalize
的 I18n 翻譯支援。(Pull Request)新增
before?
和after?
方法至Date
、DateTime
、Time
和TimeWithZone
。(Pull Request)修正
URI.unescape
在輸入混合 Unicode/轉譯字元時會失敗的錯誤。(Pull Request)修復
ActiveSupport::Cache
在啟用壓縮時會大量增加儲存空間大小的錯誤。(Pull Request)Redis 快取儲存:
delete_matched
不再會封鎖 Redis 伺服器。(Pull Request)修復
ActiveSupport::TimeZone.all
在ActiveSupport::TimeZone::MAPPING
中定義的任何時區的 tzinfo 資料遺失時會失敗的錯誤。(Pull Request)新增
Enumerable#index_with
,允許從可列舉物件建立一個雜湊,其值來自傳遞區塊或預設引數。(Pull Request)允許
Range#===
和Range#cover?
方法使用Range
引數。(Pull Request)支援 RedisCacheStore 的
increment/decrement
操作中的金鑰過期時間。(Pull Request)新增 CPU 時間、閒置時間和配置功能以記錄訂閱者事件。(Pull Request)
新增對 Active Support 通知系統的事件物件支援。(Pull Request)
新增支援,透過為
ActiveSupport::Cache#fetch
導入新的選項skip_nil
,不快取nil
項目。(Pull Request)新增
Array#extract!
方法,移除並傳回區塊傳回 true 值的元素。(Pull Request)在切片後保持 HTML 安全字串的 HTML 安全性。(Pull Request)
新增透過記錄支援追蹤常數自動載入。(Commit)
將
unfreeze_time
定義為travel_back
的別名。(Pull Request)將
ActiveSupport::TaggedLogging.new
變更為傳回新的記錄器實例,而非變更接收為引數的那個實例。(Pull Request)將
#delete_prefix
、#delete_suffix
和#unicode_normalize
方法視為非 HTML 安全方法。(Pull Request)修正
ActiveSupport::HashWithIndifferentAccess
的#without
對於符號引數會失敗的錯誤。(Pull Request)將
Module#parent
、Module#parents
和Module#parent_name
重新命名為module_parent
、module_parents
和module_parent_name
。(Pull Request)新增
ActiveSupport::ParameterFilter
。(Pull Request)修正當浮點數加入持續時間時,持續時間會被四捨五入為整秒的問題。(Pull Request)
將
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
以正確處理 Regex 或其他多模式訂閱者。(Pull Request)使用 Zeitwerk 新增自動載入機制。(提交)
新增
Array#including
和Enumerable#including
,方便擴充集合。(提交)將
Array#without
和Enumerable#without
重新命名為Array#excluding
和Enumerable#excluding
。舊方法名稱保留為別名。(提交)新增支援,提供
locale
給transliterate
和parameterize
。(Pull Request)修正
Time#advance
,使其適用於 1001-03-07 之前的日期。(Pull Request)更新
ActiveSupport::Notifications::Instrumenter#instrument
,允許不傳遞區塊。(Pull Request)在後代追蹤器中使用弱參照,允許匿名子類別被垃圾回收。(Pull Request)
使用
with_info_handler
方法呼叫測試方法,以允許 minitest-hooks 外掛程式運作。(提交)保留
ActiveSupport::SafeBuffer#*
的html_safe?
狀態。(Pull Request)
12 Active Job
請參閱 變更日誌,以取得詳細變更內容。
12.1 移 除
- 移除對 Qu 寶石的支援。(Pull Request)
12.2 已過時
12.3 顯著變更
新增對 Active Job 引數的自訂序列化程式的支援。(Pull Request)
新增對在排入佇列時區執行 Active Job 的支援。(Pull Request)
允許傳遞多個例外給
retry_on
/discard_on
。(提交)允許在沒有區塊的情況下呼叫
assert_enqueued_with
和assert_enqueued_email_with
。(Pull Request)將
enqueue
和enqueue_at
的通知包裝在around_enqueue
回呼中,而不是after_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 指南
請參閱 變更日誌,以取得詳細變更。
13.1 顯著變更
新增使用 Active Record 的多個資料庫指南。(Pull Request)
新增關於自動載入常數疑難排解的部分。(Commit)
新增 Action Mailbox 基礎指南。(Pull Request)
新增 Action Text 概觀指南。(Pull Request)
14 個學分
請參閱 Rails 貢獻者完整清單,了解許多花費許多時間製作 Rails 的人,讓 Rails 成為一個穩定且強大的架構。向所有這些人致敬。
回饋
我們鼓勵您協助提升本指南的品質。
如果您看到任何錯字或事實錯誤,請協助我們修正。首先,您可以閱讀我們的 文件貢獻 部分。
您也可能會發現不完整的內容或未更新的內容。請務必為 main 新增任何遺漏的文件。請務必先查看 Edge Guides,以驗證問題是否已在主分支中修正。查看 Ruby on Rails 指南準則,了解風格和慣例。
如果您因為任何原因發現需要修正但無法自行修補,請 開啟問題。
最後但並非最不重要的一點,我們非常歡迎在 官方 Ruby on Rails 論壇 上針對 Ruby on Rails 文件進行任何類型的討論。