2016-10-17 4 views
2

Я получаю следующее сообщение об ошибкеDigest :: Дайджест устарел; использовать Digest

Digest::Digest is deprecated; use Digest 

, когда я пытаюсь загрузить мой сервер рельсы. Я попытался найти исходный код для Digest::Digest, но я его нигде не использую. любая идея, как это решить?

Только место, я использую это

<% digest = OpenSSL::Digest.new('sha1') %> 

@alias = Digest::MD5.hexdigest(phone) 
+0

@AndreyDeineko Вы можете поделиться ссылкой? это так: https://rubygems.org/gems/ackr/versions/0.2.4 –

+0

добавил еще несколько опций :) –

ответ

6

Это, скорее всего, используется один из драгоценных камней, ваше приложение зависит от.

установить (если он уже не установлены) ack tool и выполните следующую команду:

# of course, the path to your gems will be different 
ack Digest::Digest /Users/username/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.1/gems/ 

Он покажет вам, является ли какой-либо из драгоценных камней, использовать его, и если да - покажет вам строку исходного кода.

Но в основном там не так много вы можете сделать:

  1. Проверьте, имеет ли этот драгоценный камень более новую версию, которая решает предупреждение устаревания
  2. Написать патч драгоценного камня, который решает предупреждение и использовать пропатченые verions (не классную идею IMO)
  3. Живого с предупреждением до гема сопровождающих не работать на этой
  4. Вы можете отключить предупреждение амортизации вообще с ActiveSupport::Deprecation.silenced = true (не классной идеей, а ИМЫ). Существует также способ заглушить конкретные предупреждения, так как @Max говорит в комментариях):

    silenced = [ 
        /Digest::Digest is deprecated; use Digest/, 
        /some other warning/, 
    ] 
    
    silenced_expr = Regexp.new(silenced.join('|')) 
    
    ActiveSupport::Deprecation.behavior = lambda do |msg, stack| 
        unless msg =~ silenced_expr 
        ActiveSupport::Deprecation::DEFAULT_BEHAVIORS[:stderr].call(msg, stack) 
        end 
    end 
    
  5. Не использовать этот драгоценный камень

+0

проклял его жемчуг 'fog' и' elastic-transcoder' –

+0

, и я использую последние версии :( –

+0

@HarshaMV, тогда, как я уже сказал, вы либо дожидаетесь, когда сопровождающие gem обновят его или будут жить с предупреждающим сообщением. –