Тип атрибута Rails ActiveModel - PullRequest
       10

Тип атрибута Rails ActiveModel

2 голосов
/ 02 февраля 2012

Я использую ActiveModels в проекте rails 3.1.1 без базы данных.

Мне интересно, как я могу установить типы атрибутов: String, Boolean, Decimal.

Насколько я понимаю, при использовании ActiveRecord, поддерживаемого базой данных, тип будет взят непосредственно из метаданных базы данных. Но без базы данных, где я могу определить типы атрибутов?

EDIT

Я думаю, что мой вопрос можно задать лучше: как добавить метаданные модели в модель, поддерживаемую службой rest или JSONRPC2?

Например, я мог бы создать переводчики, которые будут кодировать эту модель в JSON, зная, какой атрибут (атрибут в ruby, свойство в JSON) является логическим, а какой - числом, или я мог бы попытаться выяснить это динамически - но, кажется, было бы лучше, чтобы моя модель была аннотирована метаданными о том, какой тип (в сервисе) хранить эти атрибуты / свойства.

Принятый ответ все еще не полностью подходит. Хотя модели Rails не заботятся о типах, схема сериализации (JSON) заботится о типах. В JSON Numbers и Boolean не должны сериализоваться как строки.

1 Ответ

2 голосов
/ 03 февраля 2012

Вы определяете атрибуты вашего класса с помощью attr_accessor для использования ActiveModel. Тип не требуется.

См. этот вопрос о "typed attr_accessor".

...