Кто-нибудь знает, поддерживает ли Mongoid поддержку имен псевдонимов? Я провел несколько тестов, где у меня есть коллекция с минимальным количеством полей (7 полей). Если я использую описательные имена и загружаю реальные данные, а затем использую значительно сокращенные имена и загружаю одни и те же данные в реальном мире, я вижу 40% -ное сокращение общего размера моей коллекции. Рассматривая другие драйверы для MongoDB (non Ruby), я вижу, что некоторые из них имеют встроенную поддержку, где вы можете писать код с описательным именем, но настойчивость достаточно умна, чтобы использовать определенные разработчиком псевдонимы. Я просто пытаюсь определить, имеет ли Монгоид ничего подобного.Полевое наложение в Mongoid
2
A
ответ
0
На самом деле, следующие должны быть включены для передачи хэша новым или update_attributes:
alias :filtered_process :process
def process(attrs = nil)
attrs[:fn] = attrs[:first_name] unless attrs.nil?
filtered_process(attrs)
end
Это позволяет ваш псевдоним будет отображаться в поле на создании или обновлении вызовов. Было бы тривиально отслеживать псевдоним для сопоставлений полей, чтобы абстрагировать этот процесс.
0
Согласно this answer, вы должны быть в состоянии использовать только alias
так:
class Foo
include Mongoid::Document
field :fn, :type => String
alias :first_name :fn
end
Имейте в виду, что это не позволит вам использовать псевдоним в запросах и может вызвать некоторые ошибки. Это должно быть хорошо для простого использования в примерах методов и представлений.
5
на самом деле лучший способ сделать это НЕ используя рубиновый псевдоним, но:
field :fn, :as => :firstname
, как описано здесь: http://groups.google.com/group/mongoid/browse_thread/thread/ce3298d6a167bd70
Смежные вопросы
- 1. Полевое выражение в iReport
- 2. Полевое объединение Sequelize
- 3. Django, уникальное полевое поколение
- 4. Полевое поле Mongoose populate
- 5. отклоненное полевое подтверждение
- 6. Динамическое полевое население VBA
- 7. Полевое набивание limite cakephp
- 8. Полевое отображение неправильно отображается
- 9. Monotouch.Dialog: Исходное полевое исключение
- 10. C# статическое полевое блокирование
- 11. Полевое поле «Пример увеличения поля»
- 12. Typo3 extbase полевое поле ввода
- 13. Полевое разделение с добавлением котировок
- 14. . Полевое имя поля MultiSelect Devexpress.?
- 15. WPF ComboBox редактируемое полевое связывание
- 16. SQL-таблица Date Полевое сравнение
- 17. Интерактивное полевое извлечение (регулярное выражение)
- 18. Полевое соединение двух файлов в UNIX
- 19. Редактируемое полевое действие в сонате Список просмотра
- 20. T4 Полевое имя в camelCase без подчеркивания?
- 21. Можно ли использовать полевое событие в интерфейсе?
- 22. Поиск в одном полевое неправильное поведение odoo
- 23. Mongoid :: Ошибки :: MixedRelations: Mongoid + DEViSE
- 24. Адрес электронной почты заблокирован как полевое поле?
- 25. Elasticearch & Groovy Scripting Вложенное полевое агрегирование Соответствие
- 26. Как извлечь полевое имя PdfFormField из PdfAnnotation
- 27. Solr условия компонента полное полевое соответствие
- 28. C#: Безопасно ли это полевое назначение?
- 29. Динамическое отображаемое имя и полевое имя
- 30. Java-унаследованное полевое затенение и JVM?
Это не самый лучший способ это сделать, смотри ответ от z3cko в качестве ruby alias добавляет другое имя метода, когда у mongoid уже есть способ сделать это. – 2012-07-19 17:27:23