Chúng tôi đang sử dụng mongodb 2.0.0, mongo gem 1.4.1, mongo_mapper 0.9.2, đường ray 3.0.6.Bỏ đặt lỗi hoạt động cho mô hình MongoMapper, không thể xóa/xóa khóa khỏi mô hình
Chúng tôi yêu MongoMapper, nhưng chúng tôi cần giúp giải quyết một vấn đề khó chịu: chúng tôi có một chìa khóa được chuyển từ một số thử nghiệm, nhưng gọi obj.unset không làm bất cứ điều gì.
Cụ thể, chúng tôi đang cố gắng loại bỏ khóa "id" (không phải "_id") vì nó khiến MM xử lý obj.id khác với obj._id mà chúng tôi không muốn.
Sau khi thanh toán bù trừ ra khỏi cơ sở dữ liệu, chúng tôi chạy các lệnh này từ một bộ điều khiển mà không làm gì khác: (Chúng tôi cũng đã cố gắng chạy cùng mã từ đường ray giao diện điều khiển, nhưng nó cũng thất bại.)
logger.info "#{Game.keys.keys.inspect}"
Game.unset({}, :id)
logger.info "#{Game.keys.keys.inspect}"
Game.unset(:id)
logger.info "#{Game.keys.keys.inspect}"
Output:
phím["jackpot", "players", "created_at", "puzzles", "ended_at", "player_index", "updated_at", "log", "_id", "id", "join_code", "puzzle_index"]
["jackpot", "players", "created_at", "puzzles", "ended_at", "player_index", "updated_at", "log", "_id", "id", "join_code", "puzzle_index"]
["jackpot", "players", "created_at", "puzzles", "ended_at", "player_index", "updated_at", "log", "_id", "id", "join_code", "puzzle_index"]
hiện tại được xác định trong mô hình trò chơi của chúng tôi:
key :players, Array, :default => []
key :player_index, Integer, :default => 0
key :puzzles, Array, :default => []
key :puzzle_index, Integer, :default => 0
key :join_code, String, :default => nil
key :jackpot, Integer, :default => 0
key :log, Array, :default => []
key :created_at, Time
key :updated_at, Time
key :ended_at, Time, :default => nil
Trợ giúp?
Cảm ơn!
Tại sao bạn có thể vẫn ở trên Mongo 1.4.1? Có một số lỗi và vấn đề hiệu suất trong phiên bản đó. Bước đầu tiên dường như nâng cấp lên phiên bản mới nhất của cơ sở dữ liệu và MM và sau đó xem sự cố của bạn có tiếp diễn hay không. –
Tôi nghĩ "mongo" đề cập đến phiên bản đá quý, 1.4.1 gần đây. Ngoài ra, câu hỏi này đã được trả lời trong danh sách gửi thư: http://groups.google.com/group/mongomapper/browse_thread/thread/20ea194868195c3e TL; DR unset chỉ hoạt động trên cơ sở dữ liệu, nhưng MM luôn ghi nhớ những phím mà nó đã xem và lưu tài liệu mới với chúng. Cần tải lại tài liệu và/hoặc khởi động lại máy chủ. Liên quan đến vấn đề # 195 https://github.com/jnunemaker/mongomapper/issues/195 –
Cảm ơn cả hai. Vâng, "mongo" là đá quý. Chúng tôi sẽ cập nhật câu hỏi để làm rõ điều này. Gà nhựa, chúng tôi đã thử khởi động lại máy chủ ứng dụng và máy chủ Mongo, nhưng có lẽ chúng tôi cũng cần phải tải lại tài liệu. Cảm ơn một lần nữa! – Crashalot