弃用警告:已弃用Object#returns以支持Object#tap

Aut*_*act 10 ruby ruby-on-rails tap

如何更改以下方法tap来停止警告

DEPRECATION WARNING: Object#returning has been deprecated in favor of Object#tap. (called from full_messages at /Users/millisami/apps/pandahr/config/initializers/fix_active_model_full_message.rb:17) :

ActiveModel::Errors.class_eval do
  # Remove complicated logic
  def full_messages
    returning full_messages = [] do
      self.each_key do |attr|
        self[attr].each do |msg|
          full_messages << msg if msg 
        end 
      end 
    end 
  end 
end 
Run Code Online (Sandbox Code Playgroud)

sep*_*p2k 14

通常,您可以returning使用此调用替换该行tap:

[].tap do |full_messages|
Run Code Online (Sandbox Code Playgroud)

但是你的方法看起来像是等价的values.compact,所以你可以用它代替你的代码.