Nå som Active :: Base.silence {} er borte, hvordan kan jeg få tilbake den funksjonaliteten?

stemmer
0

Jeg gjør mye av romlige spørringer som dumpe enorme mengder tekst i form av stokker hver gang jeg kjører spørringer. Disse sakte ned mine programmer enormt.

Jeg blir nødt til å oppdatere mine rails til '4.1.2' fra '4.0.0', og ActiveRecord::Base.silencehar blitt fullstendig avskrevet som i, fungerer det ikke. Her er det som pleide å jobbe

ActiveRecord::Base.silence do
  noisy_query
end

Når jeg prøver dette nå, får jeg denne feilen ....

ArgumentError: wrong number of arguments (0 for 1)
from /Users/davidddouglas/.rvm/gems/ruby-1.9.3-p551/gems/activesupport-4.1.2/lib/active_support/core_ext/kernel/reporting.rb:82:in `capture'

I 4.0.0 sendte den en avskrivninger advarsel, og nå skriptet fungerer bare ikke. Merkelig nok, er funksjonen fortsatt erklært, det bare virker ikke lenger, og forventer en slags parameter. Jeg har prøvd passerer nilog fikk denne feilmeldingen:

NoMethodError: undefined method `reopen' for nil:NilClass

Jeg leter etter en måte å monkeypatch den gamle funksjonaliteten tilbake i mitt program for å få mine skript til å fungere igjen. Ikke så bekymret for beste praksis som dette er et program jeg bruker internt med liten eller ingen front end og 0 brukere andre enn meg selv.

Takk

Publisert på 25/05/2015 klokken 18:59
kilden bruker
På andre språk...                            


1 svar

stemmer
1

silenceflyttet til en kjerne forlengelse på logger .

Fra deres eksempel,

logger = Logger.new("log/development.log")
logger.silence(Logger::INFO) do
  logger.debug("In space, no one can hear you scream.")
  logger.info("Scream all you want, small mailman!")
end
Svarte 25/05/2015 kl. 19:17
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more