1 Atnaujinimas į Rails 6.0
Jei atnaujinote esamą programą, gerai būtų turėti geras testavimo padengimo galimybes prieš pradedant. Taip pat pirmiausia turėtumėte atnaujinti iki Rails 5.2 versijos, jei dar to nepadarėte, ir įsitikinti, kad jūsų programa vis dar veikia kaip tikėtasi, prieš bandant atnaujinti į Rails 6.0. Atnaujinimo metu reikėtų atkreipti dėmesį į tam tikrus dalykus, kuriuos galima rasti Atnaujinimo Ruby on Rails vadove.
2 Pagrindinės funkcijos
2.1 Action Mailbox
Action Mailbox leidžia jums nukreipti gautus el. laiškus į kontrolerio panašius pašto dėžutes. Apie Action Mailbox galite sužinoti daugiau Action Mailbox Basics vadove.
2.2 Action Text
Action Text į Rails įtraukia turtingo teksto turinį ir redagavimą. Tai apima Trix redaktorių, kuris tvarko viską nuo formatavimo iki nuorodų, citatų, sąrašų, įterptų vaizdų ir galerijų. Trix redaktoriaus sugeneruotas turtingas teksto turinys yra išsaugomas savo RichText modelyje, kuris yra susijęs su bet kuriuo esamu Active Record modeliu programoje. Visi įterpti vaizdai (ar kiti priedai) automatiškai saugomi naudojant Active Storage ir susijungia su įtrauktu RichText modeliu.
Apie Action Text galite sužinoti daugiau Action Text Overview vadove.
2.3 Parallel Testing
Parallel Testing leidžia jums padalinti testų rinkinį į kelias dalis ir vykdyti jas vienu metu. Nors numatytasis būdas yra kurti naujus procesus, taip pat palaikomas gijų naudojimas. Testų vykdymas vienu metu sumažina viso testų rinkinio vykdymo laiką.
2.4 Action Cable Testing
Action Cable testavimo įrankiai leidžia jums testuoti Action Cable funkcionalumą bet kuriuo lygmeniu: ryšiai, kanalai, transliacijos.
3 Railties
Detalius pokyčius žiūrėkite Changelog.
3.1 Pašalinimai
Pašalintas pasenusių
after_bundle
pagalbininkas vidiniuose įskiepių šablonuose. (Commit)Pašalinta pasenusi parametrų
config.ru
, kuris naudoja programos klasę kaiprun
argumentą. (Commit)Pašalintas pasenusi
environment
argumentas išrails
komandų. (Commit)Pašalintas pasenusi
capify!
metodas generatoriuose ir šablonuose. (Commit)Pašalintas pasenusi
config.secret_token
. (Commit)
3.2 Pasenusi funkcionalumas
Pasenusi galimybė perduoti Rack serverio pavadinimą kaip įprastą argumentą
rails server
komandoje. (Pull Request)Pasenusi galimybė naudoti
HOST
aplinkos kintamąjį nurodyti serverio IP adresą. (Pull Request)Pasenusi galimybė pasiekti
config_for
grąžintus hash'us naudojant ne simbolius kaip raktus. (Pull Request)
3.3 Svarbūs pakeitimai
Pridėta aiški parinktis
--using
arba-u
nurodyti serverįrails server
komandoje. (Pull Request)Pridėta galimybė matyti
rails routes
rezultatus išplėstiniu formatu. (Pull Request)Paleidžiamas duomenų bazės seed užduotis naudojant inline Active Job adapterį. (Pull Request)
Pridėta komanda
rails db:system:change
pakeisti aplikacijos duomenų bazę. (Pull Request)Pridėta
rails test:channels
komanda testuoti tik Action Cable kanalus. (Pull Request)Įvestas saugos mechanizmas nuo DNS rebinding atakų. (Pull Request)
Pridėta galimybė nutraukti vykdymą klaidos atveju vykdant generatorių komandas. (Pull Request)
Padarytas Webpacker numatytasis JavaScript kompiliatorius Rails 6 versijoje. (Pull Request)
Pridėta galimybė naudoti kelis duomenų bazes
rails db:migrate:status
komandoje. (Pull Request)Pridėta galimybė naudoti skirtingus migracijų keliai iš kelių duomenų bazės generatoriuose. (Pull Request)
Pridėta palaikymas daugiaaplinkos kredencialių. (Pull Request)
Testų aplinkoje
null_store
tapo numatytuoju kešo saugyklos tipu. (Pull Request)
4 Action Cable
Išsamesnius pakeitimus žr. Changelog.
4.1 Pašalinimai
- Pakeisti
ActionCable.startDebugging()
irActionCable.stopDebugging()
suActionCable.logger.enabled
. (Pull Request)
4.2 Pasenusi funkcionalumas
- Rails 6.0 versijoje nėra jokių pasenusių funkcionalumų Action Cable.
4.3 Svarbūs pakeitimai
Pridėta palaikymas
channel_prefix
parinkčiai PostgreSQL prenumeratos adapteriuosecable.yml
faile. (Pull Request)Leidžiama perduoti pasirinktinę konfigūraciją
ActionCable::Server::Base
. (Pull Request)Pridėti
:action_cable_connection
ir:action_cable_channel
užkrovimo "hooks". (Pull Request)Pridėti
Channel::Base#broadcast_to
irChannel::Base.broadcasting_for
. (Pull Request)Uždaryti ryšį kviečiant
reject_unauthorized_connection
išActionCable::Connection
. (Pull Request)Konvertuoti Action Cable JavaScript paketą iš CoffeeScript į ES2015 ir paskelbti šaltinio kodą npm platinime. (Pull Request)
Perkelti WebSocket adapterio ir logger adapterio konfigūraciją iš
ActionCable
savybių įActionCable.adapters
. (Pull Request)Pridėkite
id
parinktį prie Redis adapterio, kad būtų galima atskirti Action Cable's Redis ryšius. (Pull Request)
5 Action Pack
Išsamius pakeitimus žiūrėkite Changelog.
5.1 Pašalinimai
Pašalintas pasenusiųjų
fragment_cache_key
pagalbininkas naudaicombined_fragment_cache_key
. (Commit)Pašalinti pasenusiųjų metodai
ActionDispatch::TestResponse
:#success?
naudai#successful?
,#missing?
naudai#not_found?
,#error?
naudai#server_error?
. (Commit)
5.2 Pasenusiųjų metodų naudojimas
Pasenusi
ActionDispatch::Http::ParameterFilter
naudaiActiveSupport::ParameterFilter
. (Pull Request)Pasenusi valdiklio lygmens
force_ssl
naudaiconfig.force_ssl
. (Pull Request)
5.3 Svarbūs pakeitimai
Pakeistas
ActionDispatch::Response#content_type
grąžinantis Content-Type antraštę kaip yra. (Pull Request)Jei resurso parametras turi dvitaškį, iškeliamas
ArgumentError
. (Pull Request)Leidžiama
ActionDispatch::SystemTestCase.driven_by
iškviesti su bloku, kad būtų galima nustatyti konkretaus naršyklės galimybes. (Pull Request)Pridėtas
ActionDispatch::HostAuthorization
middleware, kuris apsaugo nuo DNS rebinding atakų. (Pull Request)Leidžiama naudoti
parsed_body
ActionController::TestCase
. (Pull Request)Iškeliamas
ArgumentError
, kai tame pačiame kontekste yra kelios šaknies maršrutai beas:
pavadinimo specifikacijų. (Pull Request)Leidžiama naudoti
#rescue_from
parametrų analizės klaidoms tvarkyti. (Pull Request)Pridėtas
ActionController::Parameters#each_value
parametrų peržiūrai. (Pull Request)Koduojami Content-Disposition failų pavadinimai
send_data
irsend_file
. (Pull Request)Iškeliamas
ActionController::Parameters#each_key
. (Pull Request)Pridedama paskirtis ir galiojimo metaduomenys į pasirašytus/užšifruotus slapukus, kad būtų užkirstas kelias kopijuoti slapuko reikšmę į kitą. (Pull Request)
Iškeliamas
ActionController::RespondToMismatchError
konfliktuojantrespond_to
iškvietimams. (Pull Request)Pridėta aiški klaidų puslapių informacija, kai užklausos formatui trūksta šablonų. (Pull Request)
Įdiegta
ActionDispatch::DebugExceptions.register_interceptor
, būdas įsikišti į DebugExceptions ir apdoroti išimtį prieš ją atvaizduojant. (Pull Request)Išvedama tik viena Content-Security-Policy nonce antraštės reikšmė užklausai. (Pull Request)
Pridėtas modulis specifiškai Rails numatytų antraščių konfigūracijai, kuris gali būti aiškiai įtrauktas į valdiklius. (Pull Request)
Pridėtas
#dig
įActionDispatch::Request::Session
. (Pull Request)
6 Action View
Išsamius pakeitimus žiūrėkite Changelog.
6.1 Pašalinimai
Pašalintas pasenusiųjų
image_alt
pagalbininkas. (Commit)Pašalintas tuščias
RecordTagHelper
modulis, iš kurio funkcionalumas jau buvo perkeltas įrecord_tag_helper
gemą. (Commit)
6.2 Pasenusiųjų metodų naudojimas
- Pasenusi
ActionView::Template.finalize_compiled_template_methods
be pakeitimo. (Pull Request) Pasenus
config.action_view.finalize_compiled_template_methods
be pakeitimo. (Pull Request)Pasenus privačių modelio metodų iškvietimą iš
options_from_collection_for_select
vaizdo pagalbininko. (Pull Request)
6.3 Svarbūs pakeitimai
Išvalyti Action View talpyklą tik vystymo režime, kai keičiamas failas, pagreitinant vystymo režimą. (Pull Request)
Perkelti visus „Rails“ npm paketus į
@rails
sritį. (Pull Request)Priimti formatų tik iš registruotų MIME tipų. (Pull Request, Pull Request)
Pridėti išteklių paskirstymą šablonų ir dalinių atvaizdavimo serverio išvestyje. (Pull Request)
Pridėti
year_format
parinktįdate_select
žymėje, leidžianti tinkinti metų pavadinimus. (Pull Request)Pridėti
nonce: true
parinktįjavascript_include_tag
pagalbininkui, palaikantį automatinį nonce generavimą saugumo politikos turiniui. (Pull Request)Pridėti
action_view.finalize_compiled_template_methods
konfigūraciją, kad būtų galima išjungti arba įjungtiActionView::Template
finalizatorius. (Pull Request)Išskirti JavaScript
confirm
iškvietimą į savo, perrašomą metodąrails_ujs
. (Pull Request)Pridėti
action_controller.default_enforce_utf8
konfigūracijos parinktį, skirtą tvarkyti UTF-8 kodavimo privalomumą. Pagal nutylėjimą tai yrafalse
. (Pull Request)Pridėti I18n rakto stiliaus palaikymą lokalės rakto pateikimo žymėms. (Pull Request)
7 Veiksmų siuntėjas
Išsamesnius pakeitimus žr. Changelog.
7.1 Pašalinimai
7.2 Pasenusių funkcijų pranešimai
Pasenusi
ActionMailer::Base.receive
naudai Action Mailbox. (Commit)Pasenusi
DeliveryJob
irParameterized::DeliveryJob
naudaiMailDeliveryJob
. (Pull Request)
7.3 Svarbūs pakeitimai
Pridėti
MailDeliveryJob
pranešimų pristatymui, įskaitant ir parametrizuotus pranešimus. (Pull Request)Leisti pasirinkti šablonų pavadinimą daugialypiams laiškams su blokais, o ne naudoti tik veiksmo pavadinimą. (Pull Request)
Pridėti
perform_deliveries
įdeliver.action_mailer
pranešimo duomenis. (Pull Request)Gerinti žurnalo pranešimą, kai
perform_deliveries
yrafalse
, nurodant, kad laiškų siuntimas buvo praleistas. (Pull Request)Leisti iškviesti
assert_enqueued_email_with
be bloko. (Pull Request)Atlikti laiškų pristatymo darbus eilėje esant
assert_emails
bloke. (Pull Request)Leisti
ActionMailer::Base
atšaukti stebėtojus ir perceptorius. (Pull Request)
8 Aktyvus įrašas
Išsamesnius pakeitimus žr. Changelog.
8.1 Pašalinimai
Pašalinti pasenusį
#set_state
iš transakcijos objekto. (Commit)Pašalinti pasenusį
#supports_statement_cache?
iš duomenų bazės adapterių. (Commit)Pašalintas pasenusi
#insert_fixtures
iš duomenų bazės adapterių. (Commit)Pašalintas pasenusi
ActiveRecord::ConnectionAdapters::SQLite3Adapter#valid_alter_table_type?
. (Commit)Pašalinta galimybė perduoti stulpelio pavadinimą į
sum
, kai perduodamas blokas. (Commit)Pašalinta galimybė perduoti stulpelio pavadinimą į
count
, kai perduodamas blokas. (Commit)Pašalinta galimybė deleguoti trūkstamus metodus iš sąryšio į Arel. (Commit)
Pašalinta galimybė deleguoti trūkstamus metodus iš sąryšio į klasės privačius metodus. (Commit)
Pašalinta galimybė nurodyti laiko žymės pavadinimą
#cache_key
. (Commit)Pašalintas pasenusi
ActiveRecord::Migrator.migrations_path=
. (Commit)Pašalintas pasenusi
expand_hash_conditions_for_aggregates
. (Commit)
8.2 Pasenusi funkcionalumas
Pasenkinama neatitinkančių didžiosios ir mažosios raidės jautrios lyginimo sujungties validavimo funkcija. (Commit)
Pasenkinama klasės lygio užklausų metodų naudojimas, jei gavėjo apimtis yra ištekliai. (Pull Request)
Pasenkinama
config.active_record.sqlite3.represent_boolean_as_integer
nustatymo funkcija. (Commit)Pasenkinama
migrations_paths
perdavimas įconnection.assume_migrated_upto_version
. (Commit)Pasenkinama
ActiveRecord::Result#to_hash
funkcija naudotiActiveRecord::Result#to_a
vietoje. (Commit)Pasenkinami metodai
DatabaseLimits
:column_name_length
,table_name_length
,columns_per_table
,indexes_per_table
,columns_per_multicolumn_index
,sql_query_length
irjoins_per_query
. (Commit)Pasenkinami
update_attributes
/!
metodai naudotiupdate
/!
vietoje. (Commit)
8.3 Svarbūs pakeitimai
Padidintas
sqlite3
gemo minimalus versijos numeris iki 1.4. (Pull Request)Pridėtas
rails db:prepare
komandos variantas, kuris sukurs duomenų bazę, jei ji neegzistuoja, ir paleis jos migracijas. (Pull Request)Pridėtas
after_save_commit
atgalinis kvietimas kaip trumpinysafter_commit :hook, on: [ :create, :update ]
. (Pull Request)Pridėtas
ActiveRecord::Relation#extract_associated
metodas, skirtas ištraukti susijusius įrašus iš sąryšio. (Pull Request)Pridėtas
ActiveRecord::Relation#annotate
metodas, skirtas pridėti SQL komentarus prie ActiveRecord::Relation užklausų. (Pull Request)Pridėta galimybė nustatyti Optimizer Hints duomenų bazėse. (Pull Request)
Pridėti
insert_all
/insert_all!
/upsert_all
metodai masiniam įrašų įterpimui. (Pull Request)Pridėta
rails db:seed:replant
komanda, kuri išvalo kiekvienos duomenų bazės lentelės duomenis esamam aplinkai ir įkelia sėklas. (Pull Request)Pridėtas
reselect
metodas, kuris yra trumpinysunscope(:select).select(fields)
. (Pull Request)Pridėtos neigiamos sąlygos visiems enum reikšmėms. (Pull Request)
Pridėti
#destroy_by
ir#delete_by
metodai sąlyginiam pašalinimui. (Pull Request)Pridėta galimybė automatiškai keisti duomenų bazės ryšius. (Pull Request)
Pridėta galimybė bloko vykdymo metu uždrausti rašymą į duomenų bazę. (Pull Request)
Pridėta API, skirta keisti ryšius ir palaikyti kelias duomenų bazes. (Pull Request)
Nustatyti laiko žymas su tikslumu kaip numatytąją reikšmę migracijoms. (Pull Request)
Palaikyti
:size
parinktį, kad būtų galima keisti teksto ir blob dydį MySQL duomenų bazėje. (Pull Request)Nustatyti tiek užsienio rakto, tiek užsienio tipo stulpelius kaip NULL reikšmes polimorfinėms asociacijoms, naudojant
dependent: :nullify
strategiją. (Pull Request)Leisti perduoti leistiną
ActionController::Parameters
egzempliorių kaip argumentą įActiveRecord::Relation#exists?
metodą. (Pull Request)Pridėti palaikymą
#where
metode be galo ribų, kurios buvo įvestos Ruby 2.6 versijoje. (Pull Request)Nustatyti
ROW_FORMAT=DYNAMIC
kaip numatytąją reikšmęcreate table
MySQL užklausose. (Pull Request)Pridėti galimybę išjungti
ActiveRecord.enum
sugeneruojamus ribojimus. (Pull Request)Padaryti neprivalomą rikiavimą konfigūruojamą stulpeliui. (Pull Request)
Padidinti minimalią PostgreSQL versiją iki 9.3, panaikinant palaikymą 9.1 ir 9.2 versijoms. (Pull Request)
Padaryti enum reikšmes užšaldytas ir iškelti klaidą, bandant jas keisti. (Pull Request)
Padaryti
ActiveRecord::StatementInvalid
klaidų SQL užklausą atskiru klaidos atributu ir įtraukti SQL parametrus kaip atskirą klaidos atributą. (Pull Request)Pridėti
:if_not_exists
parinktįcreate_table
metode. (Pull Request)Pridėti palaikymą kelioms duomenų bazėms
rails db:schema:cache:dump
irrails db:schema:cache:clear
komandose. (Pull Request)Pridėti palaikymą hash ir url konfigūracijoms
ActiveRecord::Base.connected_to
duomenų bazės hash'e. (Pull Request)Pridėti palaikymą numatytoms išraiškoms ir išraiškų indeksams MySQL duomenų bazėje. (Pull Request)
Pridėti
index
parinktįchange_table
migracijų pagalbininkams. (Pull Request)Taisyti
transaction
atšaukimą migracijoms. Anksčiau, komandos vidujetransaction
atšaukimo migracijoje buvo vykdomos be atšaukimo. Šis pakeitimas tai taiso. (Pull Request)Leisti
ActiveRecord::Base.configurations=
nustatyti su simbolizuotu hash'u. (Pull Request)Taisyti skaitiklio kešavimą, kad atnaujintų tik tada, kai įrašas iš tikrųjų yra išsaugotas. (Pull Request)
Pridėti išraiškų indeksų palaikymą SQLite adapteriui. (Pull Request)
Leisti pakartotinai apibrėžti autosave atgalinio kvietimo metodus susijusiems įrašams. (Pull Request)
Padidinti minimalią MySQL versiją iki 5.5.8. (Pull Request)
Numatytoji MySQL simbolių rinkinio reikšmė pakeista į utf8mb4. (Pull Request)
Pridėti galimybę filtruoti jautrią informaciją
#inspect
metode. (Pull Request, Pull Request)Pakeisti
ActiveRecord::Base.configurations
grąžinti objektą vietoje hash'o. (Pull Request)Pridėkite duomenų bazės konfigūraciją, kad išjungtumėte patarimų užraktus. (Pull Request)
Atnaujinkite SQLite3 adapterio
alter_table
metodą, kad atkurtumėte užsienio raktus. (Pull Request)Leiskite
:to_table
opcijairemove_foreign_key
būti invertuojamai. (Pull Request)Ištaisykite numatytąją reikšmę MySQL laiko tipams su nurodytu tikslumu. (Pull Request)
Ištaisykite
touch
opciją, kad elgtųsi nuosekliai suPersistence#touch
metodu. (Pull Request)Iškelkite išimtį dėl pasikartojančių stulpelių apibrėžimų migracijose. (Pull Request)
Padidinkite minimalią SQLite versiją iki 3.8. (Pull Request)
Ištaisykite pagrindinius įrašus, kad nebebūtų išsaugomi su pasikartojančiais vaikų įrašais. (Pull Request)
Užtikrinkite, kad
Associations::CollectionAssociation#size
irAssociations::CollectionAssociation#empty?
naudotų įkeltų asociacijų id, jei jie yra. (Pull Request)Pridėkite palaikymą išankstiniam įkėlimui asociacijų polimorfinėse asociacijose, kai ne visi įrašai turi reikiamas asociacijas. (Commit)
Pridėkite
touch_all
metodą įActiveRecord::Relation
. (Pull Request)Pridėkite
ActiveRecord::Base.base_class?
predikatą. (Pull Request)Pridėkite pasirinktinius prefikso / sufikso variantus
ActiveRecord::Store.store_accessor
. (Pull Request)Pridėkite
ActiveRecord::Base.create_or_find_by
/!
metodą, skirtą susidoroti su SELECT/INSERT lenktynių sąlygaActiveRecord::Base.find_or_create_by
/!
pagalba remiantis unikaliomis apribojimais duomenų bazėje. (Pull Request)Pridėkite
Relation#pick
kaip trumpinį vieno reikšmės plucks. (Pull Request)
9 Aktyvus saugojimas
Išsamiems pakeitimams žiūrėkite Changelog.
9.1 Pašalinimai
9.2 Pasenusios funkcijos
Pasenusi
config.active_storage.queue
konfigūracija naudaiconfig.active_storage.queues.analysis
irconfig.active_storage.queues.purge
. (Pull Request)Pasenusi
ActiveStorage::Downloading
naudaiActiveStorage::Blob#open
. (Commit)Pasenusi
mini_magick
tiesioginio naudojimo funkcija paveikslėlių variantams generuoti naudaiimage_processing
. (Commit)Pasenusi
:combine_options
funkcija Active Storage's ImageProcessing transformatoriuje be pakeitimo. (Commit)
9.3 Pastebimi pakeitimai
Pridėkite palaikymą BMP paveikslėlių variantams generuoti. (Pull Request)
Pridėkite palaikymą TIFF paveikslėlių variantams generuoti. (Pull Request)
Pridėkite palaikymą progresyviems JPEG paveikslėlių variantams generuoti. (Pull Request)
Pridėkite
ActiveStorage.routes_prefix
konfigūracijai, skirtai konfigūruoti Active Storage sugeneruotus maršrutus. (Pull Request)Generuokite 404 Not Found atsakymą
ActiveStorage::DiskController#show
metu, kai prašomas failas trūksta iš disko paslaugos. (Pull Request)Iškelkite
ActiveStorage::FileNotFoundError
išimtį, kai prašomas failas trūkstaActiveStorage::Blob#download
irActiveStorage::Blob#open
. (Pull Request)Pridėkite bendrą
ActiveStorage::Error
klasę, iš kurios paveldi Active Storage išimtys. (Commit)Išsaugokite įkeltus failus, priskirtus įrašui, į saugyklą, kai įrašas yra išsaugomas, o ne iš karto. (Pull Request)
Galimai pakeisti esamas failus vietoj jų pridėjimo, kai priskiriamas prie priedų kolekcijos (pvz.,
@user.update!(images: [ … ])
). Norint kontroliuoti šį veikimą, naudokiteconfig.active_storage.replace_on_assign_to_many
. (Pull Request, Pull Request)Pridėta galimybė atspindėti apibrėžtus priedus naudojant esamą Active Record atspindžio mechanizmą. (Pull Request)
Pridėtas
ActiveStorage::Blob#open
, kuris atsisiunčia laikinąjį failą į disko ir grąžina jį. (Commit)Palaikoma srautinė atsisiuntimo funkcija iš Google Cloud Storage. Reikalinga
google-cloud-storage
versija 1.11+. (Pull Request)Naudojama
image_processing
grotelė Active Storage variantams. Tai pakeičia tiesioginįmini_magick
naudojimą. (Pull Request)
10 Active Model
Išsamesnė informacija pateikta Changelog puslapyje.
10.1 Pašalinimai
10.2 Pasenusios funkcijos
10.3 Svarbūs pakeitimai
Pridėta konfigūracijos galimybė, kuri leidžia keisti
ActiveModel::Errors#full_message
formato nustatymus. (Pull Request)Pridėta palaikymo galimybė nustatyti atributo pavadinimą
has_secure_password
. (Pull Request)Pridėtas
#slice!
metodasActiveModel::Errors
klasei. (Pull Request)Pridėtas
ActiveModel::Errors#of_kind?
metodas, skirtas tikrinti, ar yra konkretus klaidos pranešimas. (Pull Request)Ištaisyta
ActiveModel::Serializers::JSON#as_json
metodo klaida, susijusi su laiko žymėmis. (Pull Request)Ištaisyta
numericality
tikrinimo funkcija, kad būtų naudojama reikšmė prieš tipo keitimą, išskyrus Active Record. (Pull Request)Ištaisyta
numericality
lygybės tikrinimo funkcija suBigDecimal
irFloat
tipo reikšmėmis, paverčiant abu galus įBigDecimal
. (Pull Request)Ištaisyta metų reikšmė, kai keičiamas daugialypis laikas. (Pull Request)
Logiškai neteisingos boolean simbolių reikšmės konvertuojamos į
false
. (Pull Request)Teisingai grąžinama data konvertuojant parametrus
value_from_multiparameter_assignment
funkcijojeActiveModel::Type::Date
. (Pull Request)Klaidų vertimų gavimo metu, jei nėra konkretaus vertimo, naudojama pagrindinė lokalė, o ne
:errors
sritis. (Pull Request)
11 Active Support
Išsamesnė informacija pateikta Changelog puslapyje.
11.1 Pašalinimai
Pašalintas pasenusio
#acronym_regex
metodo išInflections
. (Commit)Pašalintas pasenusio
Module#reachable?
metodas. (Commit)Pašalintas
Kernel#`
be jokio pakeitimo. (Pull Request)
11.2 Pasenusios funkcijos
Pasenusi galimybė naudoti neigiamus sveikuosius skaičius kaip argumentus
String#first
irString#last
funkcijose. (Pull Request)Pasenusi
ActiveSupport::Multibyte::Unicode#downcase/upcase/swapcase
funkcija, naudojantString#downcase/upcase/swapcase
funkcijas. (Pull Request)Pasenusi
ActiveSupport::Multibyte::Unicode#normalize
irActiveSupport::Multibyte::Chars#normalize
funkcijos, naudojantString#unicode_normalize
funkciją. (Pull Request)Pasenusi
ActiveSupport::Multibyte::Chars.consumes?
funkcija, naudojantString#is_utf8?
funkciją. (Pull Request)Pasenusios
ActiveSupport::Multibyte::Unicode#pack_graphemes(array)
irActiveSupport::Multibyte::Unicode#unpack_graphemes(string)
funkcijos, naudojantarray.flatten.pack("U*")
irstring.scan(/\X/).map(&:codepoints)
atitinkamai. (Pull Request)Svarbūs pakeitimai
Pridėta palaikymas lygiagrečiam testavimui. (Pull Request)
Užtikrinta, kad
String#strip_heredoc
išlaikytų užšaldytų eilučių būseną. (Pull Request)Pridėtas
String#truncate_bytes
metodas, skirtas sutrumpinti eilutę iki maksimalaus baitų dydžio, nesulaužant daugiabaitės simbolių ar grafemų grupių. (Pull Request)Pridėta
private
parinktisdelegate
metode, kad būtų galima deleguoti privačius metodus. Ši parinktis priimatrue/false
reikšmes. (Pull Request)Pridėtas palaikymas vertimams per I18n
ActiveSupport::Inflector#ordinal
irActiveSupport::Inflector#ordinalize
. (Pull Request)Pridėti
before?
irafter?
metodaiDate
,DateTime
,Time
irTimeWithZone
klasėms. (Pull Request)Ištaisyta klaida, kai
URI.unescape
metodas nesugebėdavo tvarkytis su mišriais Unicode/escapintais simboliais. (Pull Request)Ištaisyta klaida, kai
ActiveSupport::Cache
labai padidindavo saugojimo dydį, kai buvo įjungtas suspaudimas. (Pull Request)Redis kešo saugykla:
delete_matched
daugiau neblokuoja Redis serverio. (Pull Request)Ištaisyta klaida, kai
ActiveSupport::TimeZone.all
metodas neveikdavo, kai trūko tzinfo duomenų bet kuriam laiko juostai, apibrėžtaiActiveSupport::TimeZone::MAPPING
. (Pull Request)Pridėtas
Enumerable#index_with
metodas, kuris leidžia sukurti hash'ą iš iteruojamojo objekto su reikšme iš perduoto bloko arba numatyta argumentu. (Pull Request)Leidžiama naudoti
Range#===
irRange#cover?
metodus suRange
argumentu. (Pull Request)Pridėtas raktų galiojimo laikas
increment/decrement
operacijoms RedisCacheStore. (Pull Request)Pridėtos CPU laiko, neaktyvaus laiko ir atminties paskyrimo funkcijos į žurnalo prenumeratoriaus įvykius. (Pull Request)
Pridėtas palaikymas įvykio objektui Active Support pranešimų sistemoje. (Pull Request)
Pridėtas palaikymas nekešuoti
nil
įrašų, įvedant naują parinktįskip_nil
ActiveSupport::Cache#fetch
. (Pull Request)Pridėtas
Array#extract!
metodas, kuris pašalina ir grąžina elementus, kuriems blokas grąžina teisingą reikšmę. (Pull Request)Išlaikoma HTML saugi eilutė HTML saugi po iškirpimo. (Pull Request)
Pridėtas palaikymas konstantų automatiniam įkėlimui per žurnalavimą. (Commit)
Apibrėžiamas
unfreeze_time
kaiptravel_back
sinonimas. (Pull Request)Pakeistas
ActiveSupport::TaggedLogging.new
metodas, kad grąžintų naują žurnalo egzempliorių vietoj mutacijos gautam egzemplioriui. (Pull Request)Traktuojami
#delete_prefix
,#delete_suffix
ir#unicode_normalize
metodai kaip ne HTML saugūs metodai. (Pull Request)Ištaisyta klaida, kai
#without
metodasActiveSupport::HashWithIndifferentAccess
neveikdavo su simboliniais argumentais. (Pull Request)Pervadintas
Module#parent
,Module#parents
irModule#parent_name
įmodule_parent
,module_parents
irmodule_parent_name
. (Pull Request)Pridėkite
ActiveSupport::ParameterFilter
. (Pull Request)Ištaisykite klaidą, kai trukmė buvo apvalinama iki pilnos sekundės, kai prie trukmės buvo pridedamas slankiojo kablelio skaičius. (Pull Request)
Padarykite
#to_options
sinonimu#symbolize_keys
ActiveSupport::HashWithIndifferentAccess
. (Pull Request)Nebekelkite išimties, jei tas pats blokas yra įtrauktas kelis kartus į Concern. (Pull Request)
Išsaugokite raktų tvarką, perduotą
ActiveSupport::CacheStore#fetch_multi
. (Pull Request)Ištaisykite
String#safe_constantize
, kad neteiktųLoadError
klaidos neteisingai rašant konstantos nuorodas. (Pull Request)Pridėkite
Hash#deep_transform_values
irHash#deep_transform_values!
. (Commit)Pridėkite
ActiveSupport::HashWithIndifferentAccess#assoc
. (Pull Request)Pridėkite
before_reset
atgalinį iškvietimą įCurrentAttributes
ir apibrėžkiteafter_reset
kaipresets
sinonimą simetriškumui. (Pull Request)Peržiūrėkite
ActiveSupport::Notifications.unsubscribe
, kad teisingai tvarkytų Regex ar kitus daugelio šablonų prenumeratorius. (Pull Request)Pridėkite naują automatinio įkėlimo mechanizmą, naudojant Zeitwerk. (Commit)
Pridėkite
Array#including
irEnumerable#including
, kad patogiai padidintumėte kolekciją. (Commit)Pervadinkite
Array#without
irEnumerable#without
įArray#excluding
irEnumerable#excluding
. Seni metodo pavadinimai išlieka kaip sinonimai. (Commit)Pridėkite palaikymą tiekiant
locale
įtransliterate
irparameterize
. (Pull Request)Ištaisykite
Time#advance
, kad veiktų su datomis iki 1001-03-07. (Pull Request)Atnaujinkite
ActiveSupport::Notifications::Instrumenter#instrument
, kad leistų neperduoti bloko. (Pull Request)Naudokite silpnus nuorodas palikuonių sekiklyje, kad anoniminiai poaibio klasės būtų galima surinkti šiukšlių rinkime. (Pull Request)
Iškvieskite testo metodus su
with_info_handler
metodu, kad leistų veikti minitest-hooks įskiepiui. (Commit)Išsaugokite
html_safe?
būsenąActiveSupport::SafeBuffer#*
. (Pull Request)
12 Aktyvus darbas
Išsamesniam pakeitimų aprašymui žiūrėkite Changelog.
12.1 Pašalinimai
- Pašalintas Qu gem palaikymas. (Pull Request)
12.2 Pasenusių funkcijų žymėjimai
12.3 Pastebimi pakeitimai
Pridėtas palaikymas pasirinktiniams serijavimo būdams Active Job argumentams. (Pull Request)
Pridėtas palaikymas vykdyti Active Job'us laiko juostose, kuriose jie buvo įtraukti. (Pull Request)
Leidžiama perduoti kelias išimtis
retry_on
/discard_on
metodams. (Commit)Leidžiama naudoti
assert_enqueued_with
irassert_enqueued_email_with
be bloko. (Pull Request)Apvyniokite pranešimus apie
enqueue
irenqueue_at
įaround_enqueue
atgalinį iškvietimą, o ne įafter_enqueue
atgalinį iškvietimą. (Pull Request)Leidžiama naudoti
perform_enqueued_jobs
be bloko. (Pull Request)Leidžiama naudoti
assert_performed_with
be bloko. (Pull Request)Pridėta
:queue
parinktis darbo patikrinimui ir pagalbinėms funkcijoms. (Pull Request)Pridėti kabliukai prie Active Job dėl bandymų ir atmetimų. (Pull Request)
Pridėti būdą testuoti argumentų poaibį vykdant darbus. (Pull Request)
Įtraukti deserializuotus argumentus į darbus, grąžinamus Active Job testavimo pagalbininkais. (Pull Request)
Leisti Active Job tikrinimo pagalbininkams priimti Proc objektą
only
raktažodyje. (Pull Request)Išmesti mikrosekundes ir nanosekundes iš darbo argumentų tikrinimo pagalbininkuose. (Pull Request)
13 Ruby on Rails vadovai
Išsamesniam pakeitimų sąrašui žiūrėkite Changelog.
13.1 Pastebimi pakeitimai
Pridėtas daugelio duomenų bazės su Active Record vadovas. (Pull Request)
Pridėtas skyrius apie konstantų automatinio įkėlimo problemų sprendimą. (Commit)
Pridėtas Action Mailbox Basics vadovas. (Pull Request)
Pridėtas Action Text Overview vadovas. (Pull Request)
14 Autoriai
Žiūrėkite pilną Rails prisidėjusių asmenų sąrašą už daugybę žmonių, kurie daugybę valandų skyrė Rails, stabiliam ir patikimam karkasui, kuris jis yra. Dėkojame visiems jiems.
Atsiliepimai
Jūs esate skatinami padėti pagerinti šio vadovo kokybę.
Prašome prisidėti, jei pastebite rašybos klaidų ar faktinių klaidų. Norėdami pradėti, galite perskaityti mūsų dokumentacijos prisidėjimo skyrių.
Taip pat gali būti nepilnos informacijos arba informacijos, kuri nėra atnaujinta. Prašome pridėti bet kokią trūkstamą dokumentaciją pagrindiniam. Patikrinkite Edge vadovus pirmiausia, ar problemas jau išspręsta arba ne pagrindinėje šakoje. Patikrinkite Ruby on Rails vadovų gaires dėl stiliaus ir konvencijų.
Jei dėl kokios nors priežasties pastebite kažką, ką reikia ištaisyti, bet negalite patys tai pataisyti, prašome pranešti apie problemą.
Ir galiausiai, bet ne mažiau svarbu, bet koks diskusijos dėl Ruby on Rails dokumentacijos yra labai laukiamos oficialiame Ruby on Rails forume.