1 Atnaujinimas iki Rails 5.2
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.1, jei dar to nedarėte, ir įsitikinti, kad jūsų programa vis dar veikia kaip tikėtasi, prieš bandant atnaujinti iki Rails 5.2. Atnaujinimo metu reikėtų atkreipti dėmesį į tam tikrus dalykus, kuriuos galima rasti Ruby on Rails atnaujinimo vadove.
2 Pagrindinės funkcijos
2.1 Active Storage
Active Storage palengvina failų įkėlimą į debesų saugyklos paslaugą, tokias kaip Amazon S3, Google Cloud Storage arba Microsoft Azure Storage, ir prideda tuos failus prie Active Record objektų. Tai apima vietinės disko pagrindu veikiančią paslaugą vystymui ir testavimui ir palaiko failų kopijavimą į pagalbines paslaugas atsarginėms kopijoms ir migracijoms. Apie Active Storage daugiau galite sužinoti Active Storage apžvalgoje vadove.
2.2 Redis Cache Store
Rails 5.2 turi įmontuotą Redis kešo saugyklą. Apie tai daugiau galite sužinoti Rails kešavimas: Apžvalga vadove.
2.3 HTTP/2 Early Hints
Rails 5.2 palaiko HTTP/2 Early Hints.
Norėdami įjungti Early Hints serverį, paleiskite --early-hints
komandą bin/rails server
.
2.4 Credentials
Pridėtas config/credentials.yml.enc
failas, skirtas saugoti produkcijos programos paslaptis.
Tai leidžia išsaugoti bet kokias autentifikacijos prieigos duomenis trečiųjų šalių paslaugoms
tiesiogiai saugykloje, užšifruotus naudojant config/master.key
failo arba
RAILS_MASTER_KEY
aplinkos kintamojo raktą.
Tai galiausiai pakeis Rails.application.secrets
ir užšifruotas
paslaptis, pristatytas Rails 5.1.
Be to, Rails 5.2
atveria API pagrindinėms Credentials,
taigi galite lengvai tvarkyti kitas užšifruotas konfigūracijas, raktus ir failus.
Apie tai daugiau galite sužinoti
Saugant Rails programas
vadove.
2.5 Content Security Policy
Rails 5.2 turi naują DSL, kuris leidžia konfigūruoti Turinio saugumo politiką jūsų programai. Galite konfigūruoti globalią numatytąją politiką ir tada perrašyti ją pagal išteklių bazę ir net naudoti lambda funkcijas, kad įterptumėte per užklausą reikšmes į antraštės dalį, pvz., sąskaitos subdomenus daugiamandatėje programoje. Apie tai daugiau galite sužinoti Saugant Rails programas vadove.
3 Railties
Išsamius pakeitimus rasite [Changelog][railties] puslapyje.
3.1 Pasenusios funkcijos
Pasenusi
capify!
metodo naudojimas generatoriuose ir šablonuose. (Pull Request)Pasenusi aplinkos pavadinimo perduodimas kaip įprastas argumentas
rails dbconsole
irrails console
komandoms. Vietoj to turėtų būti naudojama-e
parinktis. (Commit)Pasenusi
Rails::Application
paveldėjimo naudojimas paleidžiant Rails serverį. (Pull Request)Pasenusi
after_bundle
atgalinis iškvietimas Rails plugin šablonuose. (Pull Request)
3.2 Svarbūs pakeitimai
Pridėtas bendras skyrius
config/database.yml
, kuris bus įkeltas visoms aplinkoms. (Pull Request)Pridėtas
railtie.rb
į plugin generatorių. (Pull Request)Išvalomi ekrano kopijų failai
tmp:clear
užduotyje. (Pull Request)Praleidžiami nenaudojami komponentai paleidžiant
bin/rails app:update
. Jei pradinės programos generavimo metu buvo praleisti Action Cable, Active Record ir kt., atnaujinimo užduotis taip pat laikosi tų praleidimų. (Pull Request)Leidžiama perduoti pasirinktinį prisijungimo pavadinimą
rails dbconsole
komandai naudojant 3 lygių duomenų bazės konfigūraciją. Pavyzdys:bin/rails dbconsole -c replica
. (Commit)Teisingai išplečiami aplinkos pavadinimo trumpiniai vykdant
console
irdbconsole
komandas. (Commit)Pridedamas
bootsnap
į numatytąjįGemfile
. (Pull Request)Palaikoma
-
kaip platformos nepriklausomas būdas vykdyti scenarijų iš standartinio įvesties srauto naudojantrails runner
(Pull Request)Pridedama
ruby x.x.x
versija įGemfile
ir sukuriamas.ruby-version
pagrindinis failas, kuriame yra dabartinė Ruby versija, kai kuriamos naujos Rails programos. (Pull Request)Pridedama
--skip-action-cable
parinktis plugin generatoriui. (Pull Request)Pridedama
git_source
įGemfile
plugin generatoriui. (Pull Request)Praleidžiami nenaudojami komponentai paleidžiant
bin/rails
Rails pluginui. (Commit)Optimizuojama generatoriaus veiksmų įdėjimo įterpimo. (Pull Request)
Optimizuojama maršrutų įdėjimo įterpimo. (Pull Request)
Pridedama
--skip-yarn
parinktis plugin generatoriui. (Pull Request)Palaikomi keli versijų argumentai
gem
metodo Generators. (Pull Request)Išvestas
secret_key_base
iš programos pavadinimo vystymo ir testavimo aplinkose. (Pull Request)Pridedamas
mini_magick
į numatytąjįGemfile
kaip komentaras. (Pull Request)rails new
irrails plugin new
pagal numatytuosius nustatymus gaunaActive Storage
. Pridėta galimybė praleistiActive Storage
naudojant--skip-active-storage
ir tai automatiškai daroma, kai naudojamas--skip-active-record
. (Pull Request)
4 Action Cable
Išsamius pakeitimus rasite [Changelog][action-cable] puslapyje.
4.1 Pašalinimai
- Pašalintas pasenusių įvykių redis adapteris. (Commit)
4.2 Pastebimi pakeitimai
Pridėta palaikymo
host
,port
,db
irpassword
parinktys cable.yml (Pull Request)Maišyti ilgi srauto identifikatoriai naudojant PostgreSQL adapterį. (Pull Request)
5 Veiksmų paketas
Išsamesnių pakeitimų žr. [Changelog][action-pack].
5.1 Pašalinimai
- Pašalintas pasenusių
ActionController::ParamsParser::ParseError
. (Commit)
5.2 Pasenusių funkcijų pažymėjimai
- Pažymėti
#success?
,#missing?
ir#error?
sinonimaiActionDispatch::TestResponse
. (Pull Request)
5.3 Pastebimi pakeitimai
Pridėtas palaikymas perdirbamiems talpyklos raktams su fragmentų talpinimu. (Pull Request)
Pakeistas fragmentų talpyklos raktų formatas, kad būtų lengviau atsekti raktų keitimąsi. (Pull Request)
AEAD užšifruoti slapukai ir seansai su GCM. (Pull Request)
Numatytuoju būdu apsaugoti nuo padirbimo. (Pull Request)
Priversti pasirašytus/užšifruotus slapukus pasibaigti serveryje. (Pull Request)
Slapukų
:expires
parinktis palaikoActiveSupport::Duration
objektą. (Pull Request)Naudoti Capybara registruotą
:puma
serverio konfigūraciją. (Pull Request)Supaprastinti slapukų middleware su raktų keitimo palaikymu. (Pull Request)
Pridėti galimybę įjungti ankstyvus užuominas HTTP/2. (Pull Request)
Pridėti galimybę naudoti headless chrome sisteminiuose testuose. (Pull Request)
Pridėta
:allow_other_host
parinktisredirect_back
metode. (Pull Request)Padaryti, kad
assert_recognizes
apdorotų prijungtas variklius. (Pull Request)Pridėta DSL konfigūruoti Content-Security-Policy antraštę. (Pull Request, Commit, Commit)
Registruoti dažniausiai naudojamus garso/vaizdo/šriftų MIME tipus, palaikomus moderniuose naršyklėse. (Pull Request)
Pakeistas numatytasis sistemos testų ekrano išvesties formatas iš
inline
įsimple
. (Commit)Pridėta galimybė naudoti headless firefox sisteminiuose testuose. (Pull Request)
Pridėti saugūs
X-Download-Options
irX-Permitted-Cross-Domain-Policies
į numatytas antraštes. (Commit)Pakeisti sistemos testai, kad Puma būtų numatytasis serveris tik tada, kai vartotojas nenurodė kitokio serverio rankiniu būdu. (Pull Request)
Pridėta
Referrer-Policy
antraštė į numatytas antraštes. (Commit)Sutampa su
Hash#each
elgesiuActionController::Parameters#each
. (Pull Request)Pridėta palaikymas automatiniam nonce generavimui Rails UJS. (Commit)
Atnaujinta numatytoji HSTS max-age reikšmė iki 31536000 sekundžių (1 metai), kad atitiktų https://hstspreload.org/ minimalų max-age reikalavimą. (Commit)
Pridėtas sinoniminis metodas
to_hash
to_h
cookies
. Pridėtas sinoniminis metodasto_h
to_hash
session
. (Commit)
6 Veiksmų peržiūra
Išsamesnių pakeitimų žr. [Changelog][action-view].
6.1 Pašalinimai
- Pašalintas pasenusi Erubis ERB tvarkytuvas. (Commit)
6.2 Pasenusi funkcionalumas
- Pasenusas
image_alt
pagalbininkas, kuris buvo naudojamas pridėti numatytąjį alt tekstą paveikslėliams, kurie buvo sugeneruoti naudojantimage_tag
. (Pull Request)
6.3 Svarbūs pakeitimai
Pridėtas
:json
tipasauto_discovery_link_tag
, kad būtų palaikomi JSON srautai. (Pull Request)Pridėta
srcset
parinktisimage_tag
pagalbininkui. (Pull Request)Ištaisytos problemos su
field_error_proc
, apgaubiančiuoptgroup
ir pasirinkimo dalininkuoption
. (Pull Request)Pakeistas
form_with
generuoti id pagal numatytuosius nustatymus. (Commit)Pridėtas
preload_link_tag
pagalbininkas. (Pull Request)Leidžiama naudoti iškviečiamuosius objektus kaip grupės metodus grupuotuose pasirinkimuose. (Pull Request)
7 Veiksmų siuntėjas
Išsamesnių pakeitimų žr. [Changelog][action-mailer].
7.1 Svarbūs pakeitimai
Leidžiama veiksmų siuntėjo klasėms konfigūruoti pristatymo darbą. (Pull Request)
Pridėtas
assert_enqueued_email_with
testavimo pagalbininkas. (Pull Request)
8 Aktyvusis įrašas
Išsamesnių pakeitimų žr. [Changelog][active-record].
8.1 Pašalinimai
Pašalintas pasenusi
#migration_keys
. (Pull Request)Pašalintas pasenusi palaikymas
quoted_id
, kai konvertuojamas Aktyvaus įrašo objektas. (Commit)Pašalinta pasenusi argumento
default
parametrizacijaindex_name_exists?
. (Commit)Pašalintas pasenusi palaikymas perduoti klasę
:class_name
asociacijose. (Commit)Pašalinti pasenusi metodai
initialize_schema_migrations_table
irinitialize_internal_metadata_table
. (Commit)Pašalintas pasenusi metodas
supports_migrations?
. (Commit)Pašalintas pasenusi metodas
supports_primary_key?
. (Commit)Pašalintas pasenusi metodas
ActiveRecord::Migrator.schema_migrations_table_name
. (Commit)Pašalintas pasenusi argumentas
name
iš#indexes
. (Commit)Pašalinti pasenusi argumentai iš
#verify!
. (Commit)Pašalinta pasenusi konfigūracija
.error_on_ignored_order_or_limit
. (Commit)Pašalintas pasenusi metodas
#scope_chain
. (Commit)Pašalintas pasenusi metodas
#sanitize_conditions
. (Commit)
8.2 Pasenusi funkcionalumas
Pasenusas
supports_statement_cache?
. (Pull Request)Pasenusas argumentų ir bloko perdavimas tuo pačiu metu
count
irsum
funkcijomsActiveRecord::Calculations
. (Pull Request)Pasenusas delegavimas į
arel
Relation
. (Pull Request)Pasenusas
set_state
metodasTransactionState
. (Commit)Pasenusas
expand_hash_conditions_for_aggregates
be pakeitimo. (Commit)
8.3 Svarbūs pakeitimai
Kvietus dinaminį fiktyviųjų duomenų gavimo metodą be argumentų, dabar jis grąžina visus šio tipo fiktyvius duomenis. Anksčiau šis metodas visada grąžindavo tuščią masyvą. (Pull Request)
Ištaisytas nesuderinamumas su pakeistomis atributų reikšmėmis, kai perrašomas Aktyvaus įrašo atributo skaitytuvas. (Pull Request)
Palaikoma mažėjanti tvarka MySQL indeksams. (Pull Request)
Ištaisytas
bin/rails db:forward
pirmos migracijos veikimas. (Commit)Sukeliamas klaidos pranešimas
UnknownMigrationVersionError
perkeldžiant migracijas, kai dabartinė migracija neegzistuoja. (Commit)Pagerbti
SchemaDumper.ignore_tables
rake užduotyse duomenų bazės struktūros iškrovimui. (Pull Request)Pridėti
ActiveRecord::Base#cache_version
palaikymą, kad būtų galima naudoti perdirbtinas talpyklos raktus naudojant naujus versijuotus įrašusActiveSupport::Cache
. Tai taip pat reiškia, kadActiveRecord::Base#cache_key
dabar grąžins stabilų raktą, kuriame nebebus laiko žymės. (Pull Request)Neleisti sukurti parametrų, jei konvertuota reikšmė yra
nil
. (Pull Request)Naudojamas masinis įterpimas, kad būtų pagerinta veiksmingumas įterpiant fiktyvius duomenis. (Pull Request)
Sujungiant dvi sąryšius, kurie atstovauja įterptiems sąryšiams, nebesikeičia sujungimai sujungto sąryšio į kairįjį išorinį sujungimą. (Pull Request)
Taisomas transakcijų taikymas vaikinėms transakcijoms. Anksčiau, jei turėjote įterptą transakciją ir išorinė transakcija buvo atšaukta, įrašas iš vidinės transakcijos vis tiek buvo žymimas kaip išsaugotas. Tai buvo ištaisyta taikant tėvų transakcijos būseną vaikinėms transakcijoms, kai tėvų transakcija yra atšaukiama. Tai teisingai pažymi įrašus iš vidinės transakcijos kaip ne išsaugotas. (Commit)
Taisomas ankstyvasis įkelimas / užkrovimas asociacijos su sąlyga, įskaitant sujungimus. (Pull Request)
Neleisti
sql.active_record
pranešimų prenumeratorių klaidų konvertuoti įActiveRecord::StatementInvalid
išimtis. (Pull Request)Praleisti užklausos talpinimą dirbant su įrašų grupėmis (
find_each
,find_in_batches
,in_batches
). (Commit)Pakeisti sqlite3 boolean serijavimą naudojant 1 ir 0. SQLite natūraliai atpažįsta 1 ir 0 kaip tiesą ir netiesą, bet anksčiau serijavo 't' ir 'f'. (Pull Request)
Reikšmės, sukonstruotos naudojant daugiausiai parametrų priskyrimą, dabar naudos po tipo konvertavimo reikšmę, kad būtų rodomos vieno lauko formos įvestyse. (Commit)
ApplicationRecord
daugiau nebus generuojamas generuojant modelius. Jei jums reikia jį sukurti, galite tai padaryti naudodamirails g application_record
. (Pull Request)Relation#or
dabar priima du sąryšius, kuriųreferences
reikšmės skiriasi tik, nesreferences
gali būti neaiškiai iškviesta naudojantwhere
. (Commit)Naudojant
Relation#or
, išskirkite bendras sąlygas ir padėkite jas prieš OR sąlygą. (Pull Request)Pridėti
binary
fiktyvaus pagalbinio metodo. (Pull Request)Automatiškai atspėkite atvirkštinį ryšį STI. (Pull Request)
Pridėti naują klaidos klasę
LockWaitTimeout
, kuri bus iškelta, kai viršytas laiko limitas laukiant užrakto. (Pull Request)Atnaujinti
sql.active_record
instrumentavimo duomenų pavadinimus, kad jie būtų aiškesni. (Pull Request)Naudojamas nurodytas algoritmas, pašalinant indeksą iš duomenų bazės. (Pull Request)
Perduodant
Set
objektąRelation#where
metodui, elgesys dabar yra toks pat kaip ir perduodant masyvą. (Commit)PostgreSQL
tsrange
dabar išlaiko poantrojo tikslumo duomenis. (Pull Request)Sukeliamas klaidos pranešimas, kai
lock!
metodas yra iškviestas ant modifikuoto įrašo. (Commit)Ištaisyta klaida, kai indekso stulpelių tvarka nebuvo įrašoma į
db/schema.rb
failą naudojant SQLite adapterį. (Pull Request)Ištaisytas
bin/rails db:migrate
su nurodytuVERSION
.bin/rails db:migrate
su tuščiu VERSION elgiasi kaip ir be VERSION. TikrinamasVERSION
formato tinkamumas: leidžiamas migracijos versijos numeris arba migracijos failo pavadinimas. Klaida išmetama, jeiVERSION
formatas yra netinkamas. Klaida išmetama, jei tikslinė migracija neegzistuoja. (Pull Request)Pridėta nauja klaidos klasė
StatementTimeout
, kuri bus iškeliama, kai viršytas užklausos vykdymo laikas. (Pull Request)update_all
metodas dabar prieš perduodant reikšmes įType#serialize
metodą, perduoda jas įType#cast
metodą. Tai reiškia, kadupdate_all(foo: 'true')
tinkamai išsaugos boolean reikšmę. (Commit)Reikalinga aiškiai pažymėti, kai naudojami neapdoroti SQL fragmentai užklausos metoduose. (Commit, Commit)
Pridėtas
#up_only
metodas duomenų bazės migracijoms, skirtas kodui, kuris yra aktualus tik migracijos metu, pvz., naujo stulpelio užpildymui. (Pull Request)Pridėta nauja klaidos klasė
QueryCanceled
, kuri bus iškeliama, kai užklausa yra nutraukiama dėl vartotojo prašymo. (Pull Request)Neleidžiama apibrėžti sąlygų, kurios konfliktuoja su
Relation
klasės egzemplioriaus metodais. (Pull Request)Pridėta palaikymo PostgreSQL operatorių klasių
add_index
metode. (Pull Request)Registruojami duomenų bazės užklausų kviečiantys elementai. (Pull Request, Pull Request, Pull Request)
Atšaukiami atributo metodai paveldėtuose objektuose, kai atnaujinami stulpelių informacijos duomenys. (Pull Request)
Naudojamas subselect metodas
delete_all
sulimit
arbaoffset
. (Commit)Ištaisyta nesuderinamumas su
first(n)
metodu, naudojantlimit()
.first(n)
ieškiklis dabar atsižvelgia įlimit()
, tai padaro jį suderinamą surelation.to_a.first(n)
elgesiu ir taip pat sulast(n)
elgesiu. (Pull Request)Ištaisyta klaida su įeinamaisiais
has_many :through
asociacijomis nepersistuotuose tėviniuose objektuose. (Commit)Atsižvelgiama į asociacijos sąlygas, kai trinami per sąlygą susieti įrašai. (Commit)
Neleidžiama keisti sunaikinto objekto po
save
arsave!
iškvietimo. (Commit)Ištaisyti ryšio sujungimo problemą naudojant
left_outer_joins
. (Pull Request)Palaikymas PostgreSQL užsienio lentelėms. (Pull Request)
Išvalyti transakcijos būseną, kai Active Record objektas yra kopijuojamas. (Pull Request)
Ištaisyti neplėtojimo problemą, kai perduodamas masyvo objektas kaip argumentas where metodui naudojant
composed_of
stulpelį. (Pull Request)Padaryti, kad
reflection.klass
mestų išimtį, jeipolymorphic?
nebūtų naudojamas neteisingai. (Commit)Ištaisyti
#columns_for_distinct
MySQL ir PostgreSQL, kadActiveRecord::FinderMethods#limited_ids_for
naudotų teisingus pirminio rakto reikšmes, net jeiORDER BY
stulpeliai apima kitos lentelės pirminį raktą. (Commit)Ištaisyti
dependent: :destroy
problemą has_one/belongs_to ryšyje, kai tevo klasė buvo ištrinama, kai vaikas nebuvo. (Commit)Neveikiančios duomenų bazės ryšiai (ankstesni tik palikti ryšiai) dabar periodiškai yra pašalinami jungčių baseino valykle. (Commit)
9 Active Model
Išsamesniam pakeitimų sąrašui žiūrėkite [Changelog][active-model].
9.1 Pastebimi pakeitimai
Ištaisyti metodai
#keys
,#values
ActiveModel::Errors
. Pakeistas#keys
, kad grąžintų tik tuos raktus, kuriuose nėra tuščių pranešimų. Pakeistas#values
, kad grąžintų tik ne tuščias reikšmes. (Pull Request)Pridėtas metodas
#merge!
ActiveModel::Errors
. (Pull Request)Leidžiama perduoti Proc arba Symbol parametrą ilgio tikrinimo nustatymams. (Pull Request)
Įvykdyti
ConfirmationValidator
tikrinimą, kai_confirmation
reikšmė yrafalse
. (Pull Request)Modeliai, naudojantys atributų API su proc numatytuoju nustatymu, dabar gali būti serijamuojami. (Commit)
Nesugadinti visų daugybinių
:includes
su nustatymais serijavime. (Commit)
10 Active Support
Išsamesniam pakeitimų sąrašui žiūrėkite Changelog.
10.1 Pašalinimai
Pašalintas pasenusių
:if
ir:unless
eilučių filtravimo naudojant stringą pasirinkimas. (Commit)Pašalintas pasenusių
halt_callback_chains_on_return_false
pasirinkimas. (Commit)
10.2 Pasenusios funkcijos
Pasenusas
Module#reachable?
metodas. (Pull Request)Pasenusas
secrets.secret_token
. (Commit)
10.3 Pastebimi pakeitimai
Pridėtas
fetch_values
metodasHashWithIndifferentAccess
. (Pull Request)Pridėta palaikymas
:offset
parametruiTime#change
. (Commit)Pridėtas palaikymas
:offset
ir:zone
ActiveSupport::TimeWithZone#change
. (Commit)Pridėti gem pavadinimas ir pasenusios funkcijos laikotarpis į pranešimus apie pasenusias funkcijas. (Pull Request)
Pridėtas palaikymas versijoms skirtoms kešo įrašams. Tai leidžia kešo saugykloms pernaudoti kešo raktus, labai taupant vietą dažnai keičiamose situacijose. Veikia kartu su
#cache_key
ir#cache_version
atskyrimu Active Record ir jo naudojimu Action Pack fragmentų kešavime. (Pull Request)Pridėkite
ActiveSupport::CurrentAttributes
, kad būtų galima naudoti gijos izoliuotą atributų vienintelę. Pagrindinis naudojimo atvejis yra visų užklausos atributų lengvas prieinamumas visam sistemai. (Pull Request)#singularize
ir#pluralize
dabar gerbia neįskaitomus skaičius nurodytai lokalėjai. (Commit)Pridėkite numatytąją parinktį
class_attribute
. (Pull Request)Pridėkite
Date#prev_occurring
irDate#next_occurring
, kad grąžintumėte nurodytą kitą/antrą atsitiktinę savaitės dieną. (Pull Request)Pridėkite numatytąją parinktį modulio ir klasės atributo prieigos metodams. (Pull Request)
Cache:
write_multi
. (Pull Request)Numatytoji
ActiveSupport::MessageEncryptor
naudoja AES 256 GCM šifravimą. (Pull Request)Pridėkite
freeze_time
pagalbininką, kuris užšaldytų laiką testuose įTime.now
. (Pull Request)Padarykite
Hash#reverse_merge!
tvarką nuoseklią suHashWithIndifferentAccess
. (Pull Request)Pridėkite paskirties ir galiojimo palaikymą
ActiveSupport::MessageVerifier
irActiveSupport::MessageEncryptor
. (Pull Request)Atnaujinkite
String#camelize
, kad būtų pateikiamas atsakymas, kai perduodama neteisinga parinktis. (Pull Request)Module#delegate_missing_to
dabar iškeliaDelegationError
, jei tikslas yranil
, panašiai kaipModule#delegate
. (Pull Request)Pridėkite
ActiveSupport::EncryptedFile
irActiveSupport::EncryptedConfiguration
. (Pull Request)Pridėkite
config/credentials.yml.enc
, kad būtų galima saugoti produkcinės programos paslaptis. (Pull Request)Pridėkite raktų keitimo palaikymą
MessageEncryptor
irMessageVerifier
. (Pull Request)Grąžinkite
HashWithIndifferentAccess
egzempliorių išHashWithIndifferentAccess#transform_keys
. (Pull Request)Hash#slice
dabar naudoja Ruby 2.5+ įdiegtą apibrėžimą, jei jis yra apibrėžtas. (Commit)IO#to_json
dabar grąžinato_s
atvaizdavimą, o ne bandymą konvertuoti į masyvą. Tai ištaiso klaidą, kaiIO#to_json
iškeltųIOError
, kai jis būtų iškviestas su negalima objektu. (Pull Request)Pridėkite tą patį metodo parašą
Time#prev_day
irTime#next_day
, atitinkamai suDate#prev_day
,Date#next_day
. Leidžia perduoti argumentąTime#prev_day
irTime#next_day
. (Commit)Pridėkite tą patį metodo parašą
Time#prev_month
irTime#next_month
, atitinkamai suDate#prev_month
,Date#next_month
. Leidžia perduoti argumentąTime#prev_month
irTime#next_month
. (Commit)Pridėkite tą patį metodo parašą
Time#prev_year
irTime#next_year
, atitinkamai suDate#prev_year
,Date#next_year
. Leidžia perduoti argumentąTime#prev_year
irTime#next_year
. (Commit)Ištaisykite akronimų palaikymą
humanize
. (Commit)Leiskite naudoti
Range#include?
su TWZ intervalais. (Pull Request)Cache: Numatytoji savybių suspaudimo įjungimo reikšmė yra > 1 kB. (Pull Request)
Redis kešo saugykla. (Pull Request, Pull Request)
Tvarkykite
TZInfo::AmbiguousTime
klaidas. (Pull Request)MemCacheStore: Palaikykite laikinąjį skaitiklį. (Commit)
Padarykite, kad
ActiveSupport::TimeZone.all
grąžintų tik laiko juostas, kurios yraActiveSupport::TimeZone::MAPPING
. (Pull Request)Pakeistas
ActiveSupport::SecurityUtils.secure_compare
numatytasis elgesys, kad netekti informacijos apie ilgio net ir kintamo ilgio eilutės. Pervadintas senasActiveSupport::SecurityUtils.secure_compare
įfixed_length_secure_compare
ir pradėta keltiArgumentError
klaida, jei perduotų eilučių ilgiai neatitinka. (Pull Request)Naudojamas SHA-1 algoritmas, kad būtų sugeneruojami nesvarbūs skaitmeniniai raktai, pvz., ETag antraštė. (Pull Request, Pull Request)
assert_changes
visada tikrins, ar išraiška pasikeitė, nepriklausomai nuofrom:
irto:
argumentų kombinacijų. (Pull Request)Pridėtas trūkstamas instrumentavimas
read_multi
metoduiActiveSupport::Cache::Store
. (Pull Request)Palaikomas
hash
kaip pirmasis argumentasassert_difference
metode. Tai leidžia nurodyti kelis skaitinius skirtumus tame pačiame tikrinime. (Pull Request)Podėlio: MemCache ir Redis
read_multi
irfetch_multi
pagreitinimas. Pirmiausia skaitykite iš vietinės atmintinės podėlio, o tik tada kreipkitės į pagrindinį serverį. (Commit)
11 Active Job
Išsamius pakeitimus žiūrėkite [Changelog][active-job].
11.1 Pastebimi pakeitimai
- Leidžiama perduoti bloką į
ActiveJob::Base.discard_on
, kad būtų galima pasirinktinai tvarkyti atmetamus darbus. (Pull Request)
12 Ruby on Rails vadovai
Išsamius pakeitimus žiūrėkite [Changelog][guides].
12.1 Pastebimi pakeitimai
Pridėtas Gijų ir kodo vykdymas Rails vadovas. (Pull Request)
Pridėtas Active Storage apžvalga vadovas. (Pull Request)
13 Autoriai
Žiūrėkite visą sąrašą žmonių, prisidėjusių prie Rails, kurie daug valandų skyrė kurti Rails, stabilų ir patikimą karkasą. Jie visi nusipelno pagyrimo.
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.