Vì lý do tôi hoàn toàn không thể giải mã được, tôi không còn có thể sử dụng ActiveSupport :: HashWithIndifferentAccess nữa.Không thể tuần tự hóa dưới dạng ActiveSupport :: HashWithIndifferentAccess nữa
Phần liên quan của mô hình trông như thế này:
class Item < ActiveRecord::Base
serialize :metadata, ActiveSupport::HashWithIndifferentAccess
(tôi đã thêm các tùy chọn để thử và buộc nó cùng, nhưng nó đã không giúp Trước đây là tất cả làm việc tốt, và tôi đã không'. t có điều đó.)
Miễn là đối tượng ở trong bộ nhớ, mọi thứ đều hoạt động tốt. Nó chính xác là một HashWithIndifferentAccess, và cuộc sống là tốt. Một khi nó được lưu vào cơ sở dữ liệu, nó sẽ được lưu dưới một Hash thay vì:
mysql> select * from items;
+----+------+-------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+
| id | link | text | metadata | category_id |
+----+------+-------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+
| 1 | NULL | Apple Store | ---
id: 42cc7080f964a520e9251fe3
name: Apple Store
contact:
phone: '4153920202'
formattedPhone: (415) 392-0202
location:
address: 1 Stockton St.
crossStreet: at Ellis St.
lat: '37.78573590563453'
lng: '-122.40610713227913'
distance: '1784'
postalCode: '94108'
city: San Francisco
state: CA
country: USA
categories:
'0':
id: 4bf58dd8d48988d122951735
name: Electronics Store
pluralName: Electronics Stores
shortName: Electronics
icon: https://foursquare.com/img/categories/shops/technology.png
parents:
- Shops & Services
primary: 'true'
verified: 'false'
stats:
checkinsCount: '30462'
usersCount: '16105'
tipCount: '128'
url: http://apple.com/sanfrancisco
hereNow:
count: '7'
| 1 |
+----+------+-------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+
Có nghĩa là nó không thể được ép buộc trở thành một HashWithIndifferentAccess và những thứ thổi lên như thế này:
ActiveRecord::SerializationTypeMismatch in Index#index
Showing /development/lists.io/website/app/views/users/_todo.html.haml where line #7 raised:
Attribute was supposed to be a ActiveSupport::HashWithIndifferentAccess, but was a Hash
Đây là sử dụng Rails 3.1.3, lưu trữ dữ liệu trong MySQL bằng cách sử dụng phiên bản đá quý mysql2 0.3.10. Tôi đang chạy ruby 1.9.2p290 là tốt. Tôi có thể thêm thông tin nữa mà bất kỳ ai cũng cho là hữu ích, nhưng tôi thua lỗ về cách gỡ lỗi thêm nữa.