2012-02-02 82 views
2

我在没有数据库后端的rails 3.1.1项目中使用ActiveModels。Rails ActiveModel属性类型

我想知道如何设置属性的类型为String,Boolean,Decimal。

从我的理解,当使用由数据库支持的ActiveRecord时,类型将直接从数据库元数据中获取。但没有数据库,我在哪里定义属性类型?

编辑

我想我的问题可以问,好,我怎么添加模型元数据到由休息或JSONRPC2服务支持的模式?

例如,我可以创建翻译器,确保将该模型编码为JSON,知道哪个属性(ruby中的属性,JSON中的属性)是布尔值,哪个是数字 - 或者我可以试着弄清楚动态的 - 但它似乎是最好让我的模型与元数据注释什么类型来存储(在服务中)这些属性/属性。

接受的答案仍然不完全适合。即使Rails模型不关心类型,序列化方案(JSON)也会关注类型。在JSON中数字和布尔值不应被序列化为字符串。

回答

2

您可以使用attr_accessor定义您的类的属性,供ActiveModel使用。没有类型是必需的。

有关“键入attr_accessor”,请参见this question