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

Ruby on Rails 4.1 Išleidimo pastabos

Svarbiausios naujovos Rails 4.1 versijoje:

Šiose išleidimo pastabose aptariamos tik pagrindinės naujovos. Norėdami sužinoti apie įvairius klaidų taisymus ir pakeitimus, prašome kreiptis į pakeitimų žurnalus arba peržiūrėti pakeitimų sąrašą pagrindiniame Rails saugykloje GitHub'e.

1 Atnaujinimas iki Rails 4.1

Jei atnaujinote esamą aplikaciją, gerai būtų turėti gerą testų padengimą prieš pradedant. Taip pat pirmiausia turėtumėte atnaujinti iki Rails 4.0, jei dar to nedarėte, ir įsitikinti, kad jūsų aplikacija veikia kaip tikėtasi, prieš bandant atnaujinti iki Rails 4.1. Atnaujinimo metu reikėtų atkreipti dėmesį į keletą dalykų, kuriuos galima rasti Ruby on Rails atnaujinimo vadove.

2 Pagrindinės funkcijos

2.1 Spring aplikacijos įkroviklis

Spring yra Rails aplikacijos įkroviklis. Jis pagreitina plėtrą, paliekant aplikaciją veikiančią fone, todėl jums nereikia jos paleisti kiekvieną kartą, kai vykdote testą, rake užduotį ar migraciją.

Naujos Rails 4.1 aplikacijos bus pristatomos su "springified" binstubais. Tai reiškia, kad bin/rails ir bin/rake automatiškai pasinaudos įkrautomis spring aplinkomis.

Vykdyti rake užduotis:

$ bin/rake test:models

Vykdyti Rails komandą:

$ bin/rails console

Spring introspekcija:

$ bin/spring status
Spring veikia:

 1182 spring server | my_app | pradėtas prieš 29 min.
 3656 spring app    | my_app | pradėtas prieš 23 sek. | testavimo režimas
 3746 spring app    | my_app | pradėtas prieš 10 sek. | plėtros režimas

Norėdami pamatyti visas galimas funkcijas, žiūrėkite Spring README.

Norėdami sužinoti, kaip perkelti esamas aplikacijas naudoti šią funkciją, žiūrėkite Ruby on Rails atnaujinimo vadovą.

2.2 config/secrets.yml

Rails 4.1 generuoja naują secrets.yml failą config aplanke. Pagal numatytuosius nustatymus, šis failas turi aplikacijos secret_key_base, tačiau jame taip pat galima saugoti kitus paslaptis, pvz., prieigos raktus prie išorinių API.

Šiame faile pridėtos paslaptys pasiekiamos per Rails.application.secrets. Pavyzdžiui, turint šį config/secrets.yml:

development:
  secret_key_base: 3b7cd727ee24e8444053437c36cc66c3
  some_api_key: SOMEKEY

Rails.application.secrets.some_api_key grąžina SOMEKEY vystymo aplinkoje.

Norėdami sužinoti, kaip perkelti esamas aplikacijas naudoti šią funkciją, žiūrėkite Ruby on Rails atnaujinimo vadovą.

2.3 Action Pack variantai

Dažnai norime atvaizduoti skirtingus HTML/JSON/XML šablonus telefonams, planšetėms ir stalinėms naršyklėms. Variantai tai padaro lengva.

Užklausos variantas yra užklausos formato specializacija, pvz., :tablet, :phone ar :desktop.

Variantą galite nustatyti before_action:

request.variant = :tablet if request.user_agent =~ /iPad/

Atsakykite į variantus veiksmuose taip pat, kaip atsakytumėte į formatus:

respond_to do |format|
  format.html do |html|
    html.tablet # atvaizduoja app/views/projects/show.html+tablet.erb
    html.phone { extra_setup; render ... }
  end
end

Pateikite atskirus šablonus kiekvienam formatai ir variantui:

app/views/projects/show.html.erb
app/views/projects/show.html+tablet.erb
app/views/projects/show.html+phone.erb

Variantų apibrėžimą taip pat galite supaprastinti naudodami įterptinį sintaksę:

respond_to do |format|
  format.js         { render "trash" }
  format.html.phone { redirect_to progress_path }
  format.html.none  { render "trash" }
end

2.4 Veiksmų laiškų peržiūros

Veiksmų laiškų peržiūros suteikia galimybę peržiūrėti, kaip atrodo laiškai, aplankant specialų URL, kuris juos atvaizduoja.

Jūs įgyvendinate peržiūros klasę, kurios metodai grąžina laiško objektą, kurį norite patikrinti:

class NotifierPreview < ActionMailer::Preview
  def welcome
    Notifier.welcome(User.first)
  end
end

Peržiūra yra pasiekiamas adresu http://localhost:3000/rails/mailers/notifier/welcome, o jų sąrašas - adresu http://localhost:3000/rails/mailers.

Pagal numatytuosius nustatymus, šios peržiūros klasės yra laikomos test/mailers/previews. Tai galima konfigūruoti naudojant preview_path parinktį.

Žr. jos dokumentaciją išsamiam aprašymui.

2.5 Aktyvių įrašų enumai

Deklaruokite enum atributą, kurio reikšmės atitinka skaičius duomenų bazėje, bet gali būti užklausiamos pagal pavadinimą.

class Conversation < ActiveRecord::Base
  enum status: [ :active, :archived ]
end

conversation.archived!
conversation.active? # => false
conversation.status  # => "archived"

Conversation.archived # => Visi archyvuoti pokalbiai

Conversation.statuses # => { "active" => 0, "archived" => 1 }

Žr. jos dokumentaciją išsamiam aprašymui.

2.6 Pranešimų patikrinimo priemonės

Pranešimų patikrinimo priemonės gali būti naudojamos generuoti ir patikrinti parašytus pranešimus. Tai gali būti naudinga saugiai perduoti jautrią informaciją, pvz., prisimink mane žetonus ir draugus.

Metodas Rails.application.message_verifier grąžina naują pranešimų patikrinimo priemonę, kuri parašo pranešimus naudojant iš secret_key_base ir duotą pranešimų patikrinimo priemonės pavadinimą išvestą raktą:

signed_token = Rails.application.message_verifier(:remember_me).generate(token)
Rails.application.message_verifier(:remember_me).verify(signed_token) # => token

Rails.application.message_verifier(:remember_me).verify(tampered_token)
# iškelia ActiveSupport::MessageVerifier::InvalidSignature klaidą

2.7 Modulio#concerning

Natūralus, mažai ceremonijų būdas atskirti atsakomybes klasėje:

class Todo < ActiveRecord::Base
  concerning :EventTracking do
    included do
      has_many :events
    end

    def latest_event
      # ...
    end

    private
      def some_internal_method
        # ...
      end
  end
end

Šis pavyzdys yra ekvivalentus EventTracking modulio apibrėžimui tiesiogiai, išplėčiant jį su ActiveSupport::Concern ir tada įmaišant į Todo klasę.

Žr. jos dokumentaciją išsamiam aprašymui ir numatytiesiems naudojimo atvejams.

2.8 CSRF apsauga nuo nuotolinės <script> žymės

Tarp svetainių užklausų sukčiavimo (CSRF) apsauga dabar taip pat apima GET užklausas su JavaScript atsakymais. Tai neleidžia trečiosioms šalims nuorodinti jūsų JavaScript URL ir bandyti jį paleisti, kad išgautų jautrią informaciją.

Tai reiškia, kad bet kuris jūsų testas, kuris pasiekia .js URL, dabar nepavyks CSRF apsauga, jei jie nenaudoja xhr. Atnaujinkite savo testus, kad būtų aišku, jog tikimasi XmlHttpRequests. Vietoje post :create, format: :js, pakeiskite į aiškų xhr :post, :create, format: :js.

3 Railties

Išsamūs pakeitimai pateikti Changelog .

3.1 Pašalinimai

  • Pašalintas update:application_controller rake užduotis.

  • Pašalintas pasenusių Rails.application.railties.engines.

  • Pašalintas pasenusių threadsafe! iš Rails konfigūracijos.

  • Pašalintas pasenusių ActiveRecord::Generators::ActiveModel#update_attributes naudai ActiveRecord::Generators::ActiveModel#update.

  • Pašalintas pasenusių config.whiny_nils parinktis.

  • Pašalintos pasenusios rake užduotys testams vykdyti: rake test:uncommitted ir rake test:recent.

3.2 Pastebimi pakeitimai

  • Spring aplikacijos prikrovimas dabar yra įdiegtas pagal numatytuosius nustatymus naujoms aplikacijoms. Jis naudoja Gemfile plėtros grupę, todėl nebus įdiegtas produkcijoje. (Pull Request)

  • BACKTRACE aplinkos kintamasis, skirtas rodyti nesufiltruotas grįžtines nuorodas testo nesėkmėms. (Commit)

  • Prieinama MiddlewareStack#unshift aplinkos konfigūracijai. (Pull Request)

  • Pridėtas Application#message_verifier metodas, skirtas grąžinti pranešimų patikrinimo priemonę. (Pull Request)

  • test_help.rb failas, kurį reikalauja numatytasis sugeneruotas testo pagalbininkas, automatiškai atnaujina jūsų testų duomenų bazę su db/schema.rb (arba db/structure.sql). Jis iškelia klaidą, jei schemos perkrovimas neišsprendžia visų laukiančių migracijų. Atsisakykite su config.active_record.maintain_test_schema = false. (Pull Request)

  • Pristatoma Rails.gem_version kaip patogus metodas, grąžinantis Gem::Version.new(Rails.version), siūlantis patikimesnį būdą atlikti versijų palyginimą. (Pull Request)

4 Action Pack

Išsamių pakeitimų informacijai žiūrėkite Changelog.

4.1 Pašalinimai

  • Pašalintas pasenusiųjų "Rails" aplikacijų atsarginis planas integraciniam testavimui, nustatykite ActionDispatch.test_app vietoj to.

  • Pašalintas pasenusi page_cache_extension konfigūracijos parametras.

  • Pašalintas pasenusi ActionController::RecordIdentifier, naudokite ActionView::RecordIdentifier vietoj to.

  • Pašalinti pasenusiųjų konstantų iš veiksmų valdiklio sąrašas:

Pašalinta Naujas
ActionController::AbstractRequest ActionDispatch::Request
ActionController::Request ActionDispatch::Request
ActionController::AbstractResponse ActionDispatch::Response
ActionController::Response ActionDispatch::Response
ActionController::Routing ActionDispatch::Routing
ActionController::Integration ActionDispatch::Integration
ActionController::IntegrationTest ActionDispatch::IntegrationTest

4.2 Svarbūs pakeitimai

  • protect_from_forgery taip pat neleidžia kirsti peržiūros <script> žymas. Atnaujinkite savo testus, kad naudotumėte xhr :get, :foo, format: :js vietoj get :foo, format: :js. (Pull Request)

  • #url_for priima raktų rinkinį su parinktimis masyve. (Pull Request)

  • Pridėtas session#fetch metodas, kuris veikia panašiai kaip Hash#fetch, išskyrus tai, kad grąžinama reikšmė visada įrašoma į seansą. (Pull Request)

  • Visiškai atskirta veiksmų peržiūra nuo veiksmų paketo. (Pull Request)

  • Užregistruojamos giliai keičiamos rakto reikšmės. (Pull Request)

  • Naujas konfigūracijos parametras config.action_dispatch.perform_deep_munge, leidžiantis išjungti parametrų "gilią keitimą", kuris buvo naudojamas siekiant išspręsti saugumo pažeidimo CVE-2013-0155 problemą. (Pull Request)

  • Naujas konfigūracijos parametras config.action_dispatch.cookies_serializer, skirtas nurodyti serijalizatorių pasirašytoms ir užšifruotoms slapukų talpykloms. (Pull Requests 1, 2 / Daugiau informacijos)

  • Pridėti render :plain, render :html ir render :body. (Pull Request / Daugiau informacijos)

5 Action Mailer

Išsamių pakeitimų informacijai žiūrėkite Changelog.

5.1 Svarbūs pakeitimai

  • Pridėta pašto peržiūros funkcija, pagrįsta 37 Signals mail_view gem. (Commit)

  • Instrumentuojama veiksmų pašto žinučių generavimas. Sugaištas laikas, reikalingas žinutės generavimui, yra įrašomas į žurnalą. (Pull Request)

6 Active Record

Išsamių pakeitimų informacijai žiūrėkite Changelog.

6.1 Pašalinimai

  • Pašalintas pasenusiųjų SchemaCache metodų, kuriems buvo perduodamas nil, palaikymas: primary_keys, tables, columns ir columns_hash.

  • Pašalintas pasenusi bloko filtras iš ActiveRecord::Migrator#migrate.

  • Pašalintas pasenusi String konstruktorius iš ActiveRecord::Migrator.

  • Pašalintas pasenusi scope naudojimas be perduodamo iškviečiamojo objekto.

  • Pašalintas pasenusi transaction_joinable= metodas, naudokite begin_transaction su :joinable parinktimi.

  • Pašalintas pasenusi decrement_open_transactions metodas.

  • Pašalintas pasenusi increment_open_transactions metodas.

  • Pašalintas pasenusi PostgreSQLAdapter#outside_transaction? metodas. Vietoj to galite naudoti #transaction_open?.

  • Pašalintas pasenusi ActiveRecord::Fixtures.find_table_name, naudokite ActiveRecord::Fixtures.default_fixture_model_name vietoj to.

  • Pašalintas pasenusi columns_for_removeSchemaStatements.

  • Pašalintas pasenusi SchemaStatements#distinct metodas.

  • Perkeltas pasenusi ActiveRecord::TestCase į "Rails" testų rinkinį. Klasė daugiau nėra vieša ir naudojama tik vidinėms "Rails" testams.

  • Pašalinta palaikymo užbaigimo parinktis :restrict asociacijose.

  • Pašalintos palaikymo parinktys :delete_sql, :insert_sql, :finder_sql ir :counter_sql asociacijose.

  • Pašalintas pasenusi type_cast_code metodas iš Column.

  • Pašalintas pasenusi ActiveRecord::Base#connection metodas. Įsitikinkite, kad jį pasiekiate per klasę.

  • Pašalintas pasenusi įspėjimas dėl auto_explain_threshold_in_seconds.

  • Pašalinta pasenusi :distinct parinktis iš Relation#count.

  • Pašalinti pasenusi metodai partial_updates, partial_updates? ir partial_updates=.

  • Pašalintas pasenusi metodas scoped.

  • Pašalintas pasenusi metodas default_scopes?.

  • Pašalintos neaiškios sąsajos nuorodos, kurios buvo pasenusios nuo 4.0.

  • Pašalinta activerecord-deprecated_finders kaip priklausomybė. Daugiau informacijos rasite gem README.

  • Pašalintas implicit_readonly naudojimas. Prašome naudoti readonly metodą aiškiai pažymėti įrašus kaip readonly. (Pull Request)

6.2 Pasenusios funkcijos

  • Pasenusas quoted_locking_column metodas, kuris niekur nenaudojamas.

  • Pasenusas ConnectionAdapters::SchemaStatements#distinct, nes jis daugiau nenaudojamas viduje. (Pull Request)

  • Pasenusos rake db:test:* užduotys, nes testavimo duomenų bazė dabar automatiškai prižiūrima. Žr. railties išleidimo pastabas. (Pull Request)

  • Pasenusos nenaudojamos ActiveRecord::Base.symbolized_base_class ir ActiveRecord::Base.symbolized_sti_name be pakeitimo. Commit

6.3 Svarbūs pakeitimai

  • Numatytieji apribojimai daugiau nebus perrašomi sujungtomis sąlygomis.

Prieš šį pakeitimą, kai apibrėždavote default_scope modelyje, jis buvo perrašomas sujungtomis sąlygomis tame pačiame lauke. Dabar jis yra sujungiamas kaip bet koks kitas rėmelis. Daugiau informacijos.

  • Pridėtas ActiveRecord::Base.to_param patogiam "gražių" URL, gautų iš modelio atributo arba metodo. (Pull Request)

  • Pridėtas ActiveRecord::Base.no_touching, kuris leidžia ignoruoti prisilietimą prie modelių. (Pull Request)

  • Suvienodintas MysqlAdapter ir Mysql2Adapter boolean tipo keitimas. type_cast grąžins 1 true ir 0 false. (Pull Request)

  • .unscope dabar pašalina sąlygas, nurodytas default_scope. (Commit)

  • Pridėtas ActiveRecord::QueryMethods#rewhere, kuris perrašys esamą, pavadintą sąlygą. (Commit)

  • Išplėstas ActiveRecord::Base#cache_key, kad priimtų pasirinktinį aukščiausio laiko žymės atributų sąrašą. (Commit)

  • Pridėtas ActiveRecord::Base#enum atributų, kurie žemėlapyje atitinka sveikus skaičius, deklaravimui pagal pavadinimą. (Commit)

  • Tipo keitimas JSON reikšmėms rašant, kad reikšmė būtų suderinta su skaitymu iš duomenų bazės. (Pull Request)

  • Tipo keitimas hstore reikšmėms rašant, kad reikšmė būtų suderinta su skaitymu iš duomenų bazės. (Commit)

  • next_migration_number pasiekiamas trečiųjų šalių generatoriams. (Pull Request)

  • Kvietimas update_attributes dabar išmes ArgumentError, kai gauna nil argumentą. Konkrečiau, jis išmes klaidą, jei argumentas, kurį jis gauna, neatitinka stringify_keys. (Pull Request)

  • CollectionAssociation#first/#last (pvz., has_many) naudoja LIMIT užklausą gauti rezultatus, o ne įkelti visą kolekciją. (Pull Request)

  • inspect veiksmas ant Active Record modelio klasės nepradės naujos ryšio. Tai reiškia, kad kviečiant inspect, kai nėra duomenų bazės, nebesukels išimties. (Pull Request)

  • Pašalinti stulpelių apribojimai count, leisti duomenų bazės iškelti klaidą, jei SQL yra neteisingas. (Pull Request)

  • Rails dabar automatiškai aptinka atvirkštines asociacijas. Jei nenurodote :inverse_of parinkties asociacijoje, tada Active Record pagal heuristiką spės atvirkštinę asociaciją. (Pull Request)

  • Tvarkyti pavadinimai ActiveRecord::Relation. Naudojant simbolius, ActiveRecord dabar verčia pavadinimus į tikrąjį stulpelio pavadinimą, naudojamą duomenų bazėje. (Pull Request)

  • ERB fixture failuose nebevertinamas pagrindinio objekto kontekste. Pagalbiniai metodai, naudojami keliems fixture'ams, turėtų būti apibrėžti moduliuose, įtrauktose į ActiveRecord::FixtureSet.context_class. (Pull Request)

  • Nesukurti arba ištrinti testavimo duomenų bazės, jei RAILS_ENV yra nurodytas aiškiai. (Pull Request)

  • Relation daugiau neturi mutatoriaus metodų, pvz., #map! ir #delete_if. Prieš naudojant šiuos metodus, konvertuokite į Array, iškviesdami #to_a. (Pull Request)

  • find_in_batches, find_each, Result#each ir Enumerable#index_by dabar grąžina Enumerator, kuris gali apskaičiuoti savo dydį. (Pull Request)

  • scope, enum ir asociacijos dabar iškelia klaidą dėl "pavojingų" pavadinimų konfliktų. (Pull Request, Pull Request)

  • second iki fifth metodai veikia kaip first paieškos funkcija. (Pull Request)

  • touch dabar iškviečia after_commit ir after_rollback callback'us. (Pull Request)

  • Įgalinti dalinės indeksus sqlite >= 3.8.0. (Pull Request)

  • change_column_null dabar gali būti atšaukiamas. (Commit)

  • Pridėtas vėliavėlė, kuri išjungia schemos iškrovimą po migracijos. Naujiems programų diegimams, pagal nutylėjimą, ši vėliavėlė yra nustatyta kaip false produkcijos aplinkoje. (Pull Request)

7 Active Model

Išsamūs pakeitimai galima rasti Changelog puslapyje.

7.1 Pasenusios funkcijos

  • Pasenusi Validator#setup funkcija. Dabar tai turi būti atliekama rankiniu būdu validatoriaus konstruktoriuje. (Commit)

7.2 Svarbūs pakeitimai

  • Pridėtos naujos API funkcijos reset_changes ir changes_applied ActiveModel::Dirty klasėje, kurios valdo pakeitimų būseną.

  • Galimybė nurodyti kelis kontekstus, kai apibrėžiama validacija. (Pull Request)

  • attribute_changed? dabar priima hash'ą, kuris patikrina, ar atributas buvo pakeistas :from ir/arba :to tam tikrai reikšmei. (Pull Request)

8 Active Support

Išsamūs pakeitimai galima rasti Changelog puslapyje.

8.1 Pašalinimai

  • Pašalinta MultiJSON priklausomybė. Dėl to, ActiveSupport::JSON.decode funkcija daugiau negali priimti parametrų hash'ui MultiJSON. (Pull Request / Daugiau informacijos)

  • Pašalinta palaikymas encode_json kablysai, naudojamiems kodo objektų kodavimui į JSON formatą. Ši funkcija buvo išskirta į activesupport-json_encoder priklausomybę. (Susijęs Pull Request / Daugiau informacijos)

  • Pašalinta pasenusi ActiveSupport::JSON::Variable be pakeitimo.

  • Pašalintas pasenusi String#encoding_aware? pagrindinių plėtinių (core_ext/string/encoding).

  • Pašalintas pasenusi Module#local_constant_names funkcija, naudojant Module#local_constants funkciją.

  • Pašalintas pasenusi DateTime.local_offset funkcija, naudojant DateTime.civil_from_format funkciją.

  • Pašalintos pasenusios Logger pagrindinės plėtinės (core_ext/logger.rb).

  • Pašalintos pasenusios Time#time_with_datetime_fallback, Time#utc_time ir Time#local_time funkcijos, naudojant Time#utc ir Time#local funkcijas.

  • Pašalinta pasenusi Hash#diff funkcija be pakeitimo.

  • Pašalinta pasenusi Date#to_time_in_current_zone funkcija, naudojant Date#in_time_zone funkciją.

  • Pašalinta pasenusi Proc#bind funkcija be pakeitimo.

  • Pašalintos pasenusios Array#uniq_by ir Array#uniq_by! funkcijos, naudokite natyvias Array#uniq ir Array#uniq! funkcijas.

  • Pašalinta pasenusi ActiveSupport::BasicObject klasė, naudokite ActiveSupport::ProxyObject klasę.

  • Pašalintas pasenusi BufferedLogger, naudokite ActiveSupport::Logger klasę.

  • Pašalintos pasenusios assert_present ir assert_blank funkcijos, naudokite assert object.blank? ir assert object.present? funkcijas.

  • Pašalinta pasenusi #filter funkcija filtravimo objektams, naudokite atitinkamą funkciją (pvz., #before funkciją prieš filtro funkciją).

  • Pašalintas 'cow' => 'kine' nereguliarus kreipinys iš numatytų kreipinių. (Commit)

8.2 Pasenusios funkcijos

8.3 Svarbūs pakeitimai

  • ActiveSupport JSON koduotojas buvo perdaromas naudojant JSON priklausomybę, o ne vykdant paprastą kodavimą naudojant tik Ruby kalbą. (Pull Request / Daugiau informacijos)

  • Pakeista suderinamumas su JSON priklausomybe. (Pull Request / Daugiau informacijos)

  • Pridėtos ActiveSupport::Testing::TimeHelpers#travel ir #travel_to funkcijos. Šios funkcijos pakeičia dabartinį laiką į nurodytą laiką ar trukmę, keičiant Time.now ir Date.today funkcijas.

  • Pridėtas ActiveSupport::Testing::TimeHelpers#travel_back metodas. Šis metodas grąžina dabartinį laiką į pradinę būseną, pašalindamas travel ir travel_to metodų pridėtas stub'us. (Pull Request)

  • Pridėtas Numeric#in_milliseconds metodas, pavyzdžiui, 1.hour.in_milliseconds, kad galėtume jį naudoti JavaScript funkcijose, pvz., getTime(). (Commit)

  • Pridėti Date#middle_of_day, DateTime#middle_of_day ir Time#middle_of_day metodai. Taip pat pridėti midday, noon, at_midday, at_noon ir at_middle_of_day kaip sinonimai. (Pull Request)

  • Pridėti Date#all_week/month/quarter/year metodai, skirti generuoti datos intervalus. (Pull Request)

  • Pridėti Time.zone.yesterday ir Time.zone.tomorrow metodai. (Pull Request)

  • Pridėtas String#remove(pattern) metodas, kaip trumpinys dažnai naudojamam String#gsub(pattern,'') modeliui. (Commit)

  • Pridėti Hash#compact ir Hash#compact! metodai, skirti pašalinti elementus su nil reikšme iš hash'o. (Pull Request)

  • blank? ir present? grąžina vienetinius objektus. (Commit)

  • Numatytasis I18n.enforce_available_locales konfigūracijos parametras yra true, tai reiškia, kad I18n užtikrins, jog visi jam perduoti lokalės būtų deklaruotos available_locales sąraše. (Pull Request)

  • Įvestas Module#concerning: natūralus, paprastas būdas atskirti atsakomybes klasėje. (Commit)

  • Pridėtas Object#presence_in metodas, supaprastinantis leistinų reikšmių pridėjimą į sąrašą. (Commit)

9 Autoriai

Peržiūrėkite visą sąrašą žmonių, prisidėjusių prie Rails, kurie daug valandų skyrė kurti Rails, stabilų ir patikimą karkasą. Šlovė jiems visiems.

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.