edge
Daugiau informacijos rubyonrails.org: Daugiau apie Ruby on Rails

Ruby on Rails 6.0 Išleidimo Pastabos

Svarbiausi dalykai Rails 6.0 versijoje:

Šios išleidimo pastabos apima tik pagrindinius pokyčius. Norėdami sužinoti apie įvairius klaidų taisymus ir pokyčius, prašome kreiptis į pokyčių žurnalus arba peržiūrėti pokyčių sąrašą pagrindiniame Rails saugykloje GitHub.

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

Pull Request

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

Pull Request

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

Pull Request

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

Pull Request

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ę kaip run 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() ir ActionCable.stopDebugging() su ActionCable.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 adapteriuose cable.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 ir Channel::Base.broadcasting_for. (Pull Request)

  • Uždaryti ryšį kviečiant reject_unauthorized_connectionActionCable::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 naudai combined_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 naudai ActiveSupport::ParameterFilter. (Pull Request)

  • Pasenusi valdiklio lygmens force_ssl naudai config.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 be as: 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 ir send_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 konfliktuojant respond_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 įjungti ActionView::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 yra false. (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 ir Parameterized::DeliveryJob naudai MailDeliveryJob. (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 yra false, 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 naudoti ActiveRecord::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 ir joins_per_query. (Commit)

  • Pasenkinami update_attributes/! metodai naudoti update/! 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 trumpinys after_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 trumpinys unscope(: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 ir rails 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 viduje transaction 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 opcijai remove_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 su Persistence#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 ir Associations::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ąlyga ActiveRecord::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 naudai config.active_storage.queues.analysis ir config.active_storage.queues.purge. (Pull Request)

  • Pasenusi ActiveStorage::Downloading naudai ActiveStorage::Blob#open. (Commit)

  • Pasenusi mini_magick tiesioginio naudojimo funkcija paveikslėlių variantams generuoti naudai image_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ūksta ActiveStorage::Blob#download ir ActiveStorage::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ą, naudokite config.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! metodas ActiveModel::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 su BigDecimal ir Float 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 funkcijoje ActiveModel::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 ir String#last funkcijose. (Pull Request)

  • Pasenusi ActiveSupport::Multibyte::Unicode#downcase/upcase/swapcase funkcija, naudojant String#downcase/upcase/swapcase funkcijas. (Pull Request)

  • Pasenusi ActiveSupport::Multibyte::Unicode#normalize ir ActiveSupport::Multibyte::Chars#normalize funkcijos, naudojant String#unicode_normalize funkciją. (Pull Request)

  • Pasenusi ActiveSupport::Multibyte::Chars.consumes? funkcija, naudojant String#is_utf8? funkciją. (Pull Request)

  • Pasenusios ActiveSupport::Multibyte::Unicode#pack_graphemes(array) ir ActiveSupport::Multibyte::Unicode#unpack_graphemes(string) funkcijos, naudojant array.flatten.pack("U*") ir string.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 parinktis delegate metode, kad būtų galima deleguoti privačius metodus. Ši parinktis priima true/false reikšmes. (Pull Request)

  • Pridėtas palaikymas vertimams per I18n ActiveSupport::Inflector#ordinal ir ActiveSupport::Inflector#ordinalize. (Pull Request)

  • Pridėti before? ir after? metodai Date, DateTime, Time ir TimeWithZone 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ėžtai ActiveSupport::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#=== ir Range#cover? metodus su Range 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 kaip travel_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 metodas ActiveSupport::HashWithIndifferentAccess neveikdavo su simboliniais argumentais. (Pull Request)

  • Pervadintas Module#parent, Module#parents ir Module#parent_name į module_parent, module_parents ir module_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 ir Hash#deep_transform_values!. (Commit)

  • Pridėkite ActiveSupport::HashWithIndifferentAccess#assoc. (Pull Request)

  • Pridėkite before_reset atgalinį iškvietimą į CurrentAttributes ir apibrėžkite after_reset kaip resets 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 ir Enumerable#including, kad patogiai padidintumėte kolekciją. (Commit)

  • Pervadinkite Array#without ir Enumerable#without į Array#excluding ir Enumerable#excluding. Seni metodo pavadinimai išlieka kaip sinonimai. (Commit)

  • Pridėkite palaikymą tiekiant locale į transliterate ir parameterize. (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

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 ir assert_enqueued_email_with be bloko. (Pull Request)

  • Apvyniokite pranešimus apie enqueue ir enqueue_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.