Mọi thứ dường như hoạt động tốt khi tôi thêm các mục vào cơ sở dữ liệu Postgres của mình. Mà không thay đổi bất cứ điều gì, ứng dụng Rails của tôi bắt đầu thất bại trong bất cứ khi nào nó bắt đầu Madeleine bất cứ nơi nào trong ứng dụng của tôi:Biểu tượng mã hóa không hợp lệ với phân loại đá quý
EncodingError in EventsController#update
invalid encoding symbol
app/controllers/events_controller.rb:137:in `update'
137 là dòng vấn đề:
135 def update
136 @event = Event.find(params[:id])
137 m = SnapshotMadeleine.new("bayes_data")
....
end
Tôi có thể phân loại những thứ trong giao diện điều khiển, mặc dù , đó là một phần của những gì khiến tôi bối rối. Trong bảng điều khiển, tính năng này hoạt động tốt:
m = SnapshotMadeleine.new("bayes_data") {}
=> #<Madeleine::DefaultSnapshotMadeleine:0x000...
m.system
=> #<Classifier::Bayes:0x000...
m.system.classify "test"
Tôi đang sử dụng đá quý Phân loại mới nhất với Madeleine.
Tôi đã tìm ra một thứ gì đó bị hỏng trong ảnh chụp của tôi mà nó đã tải, vì vậy tôi đã xóa nó, nhưng điều đó không giải quyết được vấn đề. Đây là ảnh chụp nhanh thứ hai của tôi (hiện là ảnh chụp gần đây nhất):
a = File.read('bayes_data/000000000000000000041.snapshot')
a.encoding
=> #<Encoding:UTF-8>
a.valid_encoding?
=> true
Không chắc chắn những gì đang diễn ra ở đây. Tôi thấy một số người với Ruby 1.9.3-p125 có vấn đề tương tự, vì vậy tôi nâng cấp lên bản phát hành ổn định mới nhất, 1.9.3-p194, nhưng điều đó cũng không giúp được gì.
Dưới đây là một liên kết đến tài liệu cho Phân loại, trong đó đề cập đến làm thế nào để sử dụng Madeleine cũng như: http://classifier.rubyforge.org/
tôi thực sự đánh giá cao bất cứ cái nhìn sâu sắc vào những gì đang xảy ra ở đây. Cảm ơn!
Bạn đã bao giờ giải quyết vấn đề này chưa? Tôi đang tìm ra cùng một vấn đề! – joshs
Không bao giờ. Tôi đã từ bỏ tính năng này vì lợi ích của thời gian. Tôi khuyên bạn nên tìm một loại đá quý khác ổn định hơn. – airlok
bạn nên làm sạch chuỗi của mình trước khi đưa chuỗi đó vào trình phân loại, ví dụ: chuyển ngữ các ký tự có dấu trọng âm –