トップ «前の日記(2008-07-17) 最新 次の日記(2008-07-22)» 編集

Route 477



2008-07-19

[rails] ruby1.8.7だとString#truncateが失敗する

ruby1.8.7でString#charsが追加されたため、ActiveSupportが定義してた charsとバッティングしたらしい。後者が配列を返すのに対し 前者はEnumeratorを返すので、#lengthが呼べなくてエラーになるようだ。

せめてActiveSupportがStringに直接charsを定義していたら大丈夫だったのだけど、 「charsが定義されたUnicodeというモジュールをStringにmixinする」という形だったので、 Unicode#charsより(ruby1.8.7の)String#charsが優先して呼ばれてしまう。

アドホックな対処法は以下: