如何使用模块来扩展哈希类

时间:2015-01-05 05:43:10

标签: ruby class module

我想要一个函数来格式化哈希数据

  class Hash
   # format data just like from redis
    def like_from_redis
      new_hash = {}
      self.each do |key, value|
        new_hash[key.to_s] = value.to_s
      end
      new_hash
    end
  end

 {a: 123, b: 123413}.like_from_redis # => {'a' => '123', 'b' => '123413'}

但是,我想要如下。

  module MyHash
    class Hash
      def like_from_redis
        ## the same
      end
    end
  end

 {a: 1, b: 3}.like_from_redis # => {'a' => '1', 'b' => '3'}

怎么办?

1 个答案:

答案 0 :(得分:-1)

“app下的所有目录”当然不包括lib。你必须手动添加它,这可以通过以下方式完成:

# config/application.rb

module MyHash
  class Hash 
    config.autoload_paths += %W(#{config.root}/lib) # add this line
  end
end

我希望这可以解决您的问题。如果没有,那么请参考此链接 Include vs Extend in Ruby