2012-02-02 4 views
2

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

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

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

EDIT

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

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

Принятый ответ по-прежнему не совсем подходит. Хотя модели Rails не заботятся о типах, схема сериализации (JSON) ОСУЩЕСТВЛЯЕТ О ТИПАХ. В JSON Numbers и Boolean не следует сериализовать как строки.

ответ

2

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

См. this question о "типизированном attr_accessor".

Смежные вопросы