ERROR NoMethodError: private method `gsub' called for

1018 ワード

ERROR NoMethodError: private method `gsub' called for ****:Date
このエラーはwebrickの問題だけでなく、gsubを使用している場合もあります.あなたが使用しているのは
        日付タイプの変数.gsub
例:
irb(main):001:0> Time.now.gsub('-', '')
NoMethodError: private method `gsub' called for Fri Jan 21 11:21:52 +0800 2011:T
ime
        from (irb):1
        from :0
irb(main):002:0>
irb(main):006:0> Date.gsub('-', '')
NoMethodError: private method `gsub' called for Date:Class
        from (irb):6
        from :0
irb(main):007:0>
irb(main):008:0> Time.now.to_s.gsub('-','')
=> "Fri Jan 21 12:26:41 +0800 2011"
irb(main):009:0>

この間違いを告げる.
私が間違った理由は、ActiveSupport::JSON.decode(metadata)という方法でjson形式に変換し、1文字あるからです.  文字列が'2010-10-08'のため、decodeを直接日付フォーマットにします.
私がgsubを使って置換内容をしたときに報告した間違いです.
解決策:
  str.to_のみs.gsub()でいいです.日付フォーマットの変数を文字列形式に変換すればいいです.