Postgres データベースに項目を追加したところ、すべてが正常に機能しているように見えました。何も変更しなくても、Rails アプリは、アプリ内のどこでも Madeleine を起動すると失敗し始めました。
EncodingError in EventsController#update
invalid encoding symbol
app/controllers/events_controller.rb:137:in `update'
137 は問題の行です。
135 def update
136 @event = Event.find(params[:id])
137 m = SnapshotMadeleine.new("bayes_data")
....
end
ただし、コンソールで物事を分類することはできますが、これが混乱の原因の一部です. コンソールでは、これは正常に機能します。
m = SnapshotMadeleine.new("bayes_data") {}
=> #<Madeleine::DefaultSnapshotMadeleine:0x000...
m.system
=> #<Classifier::Bayes:0x000...
m.system.classify "test"
Madeleine で最新の Classifier gem を使用しています。
ロードしようとしたスナップショットで何かが破損していると考えたので、それを削除しましたが、問題は解決しませんでした。これが私の最後から2番目のスナップショットです(現在は最新のものです):
a = File.read('bayes_data/000000000000000000041.snapshot')
a.encoding
=> #<Encoding:UTF-8>
a.valid_encoding?
=> true
ここで何が起こっているのかわかりません。Ruby 1.9.3-p125 で同様の問題を抱えている人が何人かいたので、最新の安定版リリースである 1.9.3-p194 にアップグレードしましたが、それも役に立ちませんでした。
マドレーヌの使用方法についても言及している Classifier のドキュメントへのリンクは次のとおりです: http://classifier.rubyforge.org/
ここで何が起こっているのかについての洞察をいただければ幸いです。ありがとう!