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
naudaiActiveRecord::Generators::ActiveModel#update
.Pašalintas pasenusių
config.whiny_nils
parinktis.Pašalintos pasenusios rake užduotys testams vykdyti:
rake test:uncommitted
irrake 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ę sudb/schema.rb
(arbadb/structure.sql
). Jis iškelia klaidą, jei schemos perkrovimas neišsprendžia visų laukiančių migracijų. Atsisakykite suconfig.active_record.maintain_test_schema = false
. (Pull Request)Pristatoma
Rails.gem_version
kaip patogus metodas, grąžinantisGem::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
, naudokiteActionView::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ėtexhr :get, :foo, format: :js
vietojget :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
irrender :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 perduodamasnil
, palaikymas:primary_keys
,tables
,columns
ircolumns_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, naudokitebegin_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
, naudokiteActiveRecord::Fixtures.default_fixture_model_name
vietoj to.Pašalintas pasenusi
columns_for_remove
išSchemaStatements
.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?
irpartial_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 naudotireadonly
metodą aiškiai pažymėti įrašus kaipreadonly
. (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
irActiveRecord::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
irMysql2Adapter
boolean tipo keitimas.type_cast
grąžins1
true
ir0
false
. (Pull Request).unscope
dabar pašalina sąlygas, nurodytasdefault_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šmesArgumentError
, kai gaunanil
argumentą. Konkrečiau, jis išmes klaidą, jei argumentas, kurį jis gauna, neatitinkastringify_keys
. (Pull Request)CollectionAssociation#first
/#last
(pvz.,has_many
) naudojaLIMIT
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čiantinspect
, 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
irEnumerable#index_by
dabar grąžinaEnumerator
, 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
ikififth
metodai veikia kaipfirst
paieškos funkcija. (Pull Request)touch
dabar iškviečiaafter_commit
irafter_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
irchanges_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'uiMultiJSON
. (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, naudojantModule#local_constants
funkciją.Pašalintas pasenusi
DateTime.local_offset
funkcija, naudojantDateTime.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
irTime#local_time
funkcijos, naudojantTime#utc
irTime#local
funkcijas.Pašalinta pasenusi
Hash#diff
funkcija be pakeitimo.Pašalinta pasenusi
Date#to_time_in_current_zone
funkcija, naudojantDate#in_time_zone
funkciją.Pašalinta pasenusi
Proc#bind
funkcija be pakeitimo.Pašalintos pasenusios
Array#uniq_by
irArray#uniq_by!
funkcijos, naudokite natyviasArray#uniq
irArray#uniq!
funkcijas.Pašalinta pasenusi
ActiveSupport::BasicObject
klasė, naudokiteActiveSupport::ProxyObject
klasę.Pašalintas pasenusi
BufferedLogger
, naudokiteActiveSupport::Logger
klasę.Pašalintos pasenusios
assert_present
irassert_blank
funkcijos, naudokiteassert object.blank?
irassert 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
Pasenusi
Numeric#{ago,until,since,from_now}
funkcija, vartotojas turi aiškiai konvertuoti reikšmę į AS::Duration, pvz.,5.ago
=>5.seconds.ago
(Pull Request)Pasenusi
active_support/core_ext/object/to_json
reikalavimo kelio dalis. Vietoje to reikia naudotiactive_support/core_ext/object/json
. (Pull Request)Pasenusi
ActiveSupport::JSON::Encoding::CircularReferenceError
funkcija. Ši funkcija buvo išskirta į activesupport-json_encoder priklausomybę. (Pull Request / Daugiau informacijos)Pasenusi
ActiveSupport.encode_big_decimal_as_string
parinktis. Ši funkcija buvo išskirta į activesupport-json_encoder priklausomybę. (Pull Request / Daugiau informacijos)Pasenusi
BigDecimal
objekto serializacija. (Pull Request)
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čiantTime.now
irDate.today
funkcijas.Pridėtas
ActiveSupport::Testing::TimeHelpers#travel_back
metodas. Šis metodas grąžina dabartinį laiką į pradinę būseną, pašalindamastravel
irtravel_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
irTime#middle_of_day
metodai. Taip pat pridėtimidday
,noon
,at_midday
,at_noon
irat_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
irTime.zone.tomorrow
metodai. (Pull Request)Pridėtas
String#remove(pattern)
metodas, kaip trumpinys dažnai naudojamamString#gsub(pattern,'')
modeliui. (Commit)Pridėti
Hash#compact
irHash#compact!
metodai, skirti pašalinti elementus sunil
reikšme iš hash'o. (Pull Request)blank?
irpresent?
grąžina vienetinius objektus. (Commit)Numatytasis
I18n.enforce_available_locales
konfigūracijos parametras yratrue
, tai reiškia, kadI18n
užtikrins, jog visi jam perduoti lokalės būtų deklaruotosavailable_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.