Вот ситуация.
user embed_one profile
profile belongs_to city
Я заполнил таблицу городов с помощью
id as Integer
name as String
Теперь я выполняю user.update_attributes(:profile_attributes{:city_id=>"5"})
, имитирующую отправку формы в браузере.Затем я проверяю user.profile
Я вижу, что city_id хранится в виде строки.Это делает мои user.profile.city
, чтобы дать ноль.
Мне интересно, что здесь делать правильно.Должен ли я позволить моему идентификатору города быть строкой или объектом BSON?Или я должен попытаться перехватить update_attributes, чтобы сделать mongoid хранить city_id как целое число?Причина, по которой я использую Integer в качестве идентификатора для города, заключается в том, что я думал, что поиск по Integer быстрее, чем поиск по строке.Кроме того, у меня есть таблицы состояний и городов, и я хочу, чтобы идентификаторы соответствовали предсказуемым образом, поэтому я не хочу использовать случайный ключ BSON.