在rails中创建编码和解码方法?

时间:2013-10-16 16:09:37

标签: ruby-on-rails ruby ruby-on-rails-3 encoding

我正在使用base62 gem来进行混淆/缩短id。所以我有类似的东西:

552.base62_encode
=> "8u"
"8u".base62_decode
=> 552

我想在初始化程序中对它们进行别名,以便它们更清晰,就像这样:

class Fixnum
  def encode
    base62_encode
  end
end

class String
  def decode
    base62_decode
  end
end

直接使用encodedecode这两个词有什么问题吗?这是否会导致任何相互依赖性,其他宝石等问题,或者这样做是否安全?

1 个答案:

答案 0 :(得分:3)

好吧,因为String#encode方法是由ruby定义的,是的,它会导致问题。

总的来说,你应该尽可能快地远离猴子补丁 它只会让你的应用程序更难理解新开发人员,并且更难维护。