我們的應用程式之前定義了默認日期格式,如下DD/MM/YYYY所示config/application.rb:
Date::DATE_FORMATS[:default] = '%d/%m/%Y'
這在 Rails 6.1 中按預期作業,但在升級到 Rails 7.0 后,它現在似乎被忽略了.to_s:
Loading development environment (Rails 7.0.2.2)
3.0.1 :001 > Date::DATE_FORMATS[:default]
=> "%d/%m/%Y"
3.0.1 :002 > Date.new(2022, 12, 31).to_s
=> "2022-12-31"
3.0.1 :003 > Date.new(2022, 12, 31).to_fs
=> "31/12/2022"
我怎樣才能.to_s在 Rails 7.0 中實作這種行為?
uj5u.com熱心網友回復:
此功能在 Rails 7 中已棄用。你可以用它重新打開它config.active_support.disable_to_s_conversion
不贊成將格式傳遞給#to_s,而支持陣列、范圍、日期、日期時間、時間、BigDecimal、浮點數和整數中的#to_fs。
這種棄用是為了允許 Rails 應用程式利用 Ruby 3.1 優化,使某些型別的物件的插值更快。
新應用程式不會在這些類上覆寫 #to_s 方法,現有應用程式可以使用 config.active_support.disable_to_s_conversion。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/427213.html
