我在rails 3.1.1项目中使用ActiveModel而没有数据库后端。
我想知道如何将属性类型设置为String,Boolean,Decimal。
根据我的理解,当使用由数据库支持的ActiveRecord时,类型将直接从数据库元数据中获取。但是没有数据库,我在哪里定义属性类型?
修改
我认为可以更好地问我的问题,如何将模型元数据添加到由rest或JSONRPC2服务支持的模型中?
例如,我可以创建将确保将该模型编码为JSON的转换器,知道哪个属性(ruby中的属性,JSON中的属性)是布尔值,哪个是数字 - 或者我可以尝试动态地计算出来 - 但似乎最好让我的模型用元数据注释关于存储(在服务中)这些属性/属性的类型。
接受的答案仍然不完全合适。即使Rails模型不关心类型,序列化方案(JSON)也要关注类型。在JSON中,Number和Boolean不应该序列化为字符串。
答案 0 :(得分:2)
您可以使用ActiveModel使用attr_accessor
来定义类的属性。不需要任何类型。
请参阅this question关于“typed attr_accessor”。