Rails ActiveModel属性类型

时间:2012-02-02 16:15:36

标签: activerecord ruby-on-rails-3.1 activemodel

我在rails 3.1.1项目中使用ActiveModel而没有数据库后端。

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

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

修改

我认为可以更好地问我的问题,如何将模型元数据添加到由rest或JSONRPC2服务支持的模型中?

例如,我可以创建将确保将该模型编码为JSON的转换器,知道哪个属性(ruby中的属性,JSON中的属性)是布尔值,哪个是数字 - 或者我可以尝试动态地计算出来 - 但似乎最好让我的模型用元数据注释关于存储(在服务中)这些属性/属性的类型。

接受的答案仍然不完全合适。即使Rails模型不关心类型,序列化方案(JSON)也要关注类型。在JSON中,Number和Boolean不应该序列化为字符串。

1 个答案:

答案 0 :(得分:2)

您可以使用ActiveModel使用attr_accessor来定义类的属性。不需要任何类型。

请参阅this question关于“typed attr_accessor”。