В Mongoid 3.0.21, как получить все атрибуты модели как обычный Ruby Hash
?Извлечение атрибутов `Moped :: BSON :: Document` в Ruby hash
Вызов либо #attributes
, либо #raw_attributes
Moped::BSON::Document
. Хотя он фактически расширяет Hash
, несколько хеш-методов не работают должным образом. В частности, .#except
возвращает немодифицированный self
, а не хеш с заданными клавишами, снятыми
Обновление: Moped::BSON::Document
Правильно наследует поведение Hash
. Я пытался называть атрибуты символами, а не строками, поэтому #except
не работал. В ближайшее время: except('pictures')
, а не except(:pictures)
.
Спасибо! Я знал, что должно быть какое-то изящное решение! – skalee
Возможно, вы захотите использовать ActiveSupport :: HashWithIndifferentAccess вместо простого хэша, чтобы иметь возможность доступа к значениям с использованием как строк, так и символов – cthulhu
Я уверен, может, спасибо. Но основная проблема заключалась в том, что я вообще не мог обращаться к именам атрибутов, потому что они индексируются строками, а не символами. Это отличается от того, к которому я привык (ActiveRecord). – skalee