activerecord - Rails ActiveModel 属性类型

标签 activerecord ruby-on-rails-3.1 activemodel

我在没有数据库后端的 Rails 3.1.1 项目中使用 ActiveModels。

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

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

编辑

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

例如,我可以创建翻译器,确保将该模型编码为 JSON,知道哪个属性(ruby 中的属性,JSON 中的属性)是 bool 值,哪个是数字——或者我可以尝试动态地找出它-- 但似乎最好让我的模型用元数据注释,说明将这些属性/属性存储为什么类型(在服务中)。

接受的答案仍然不完全合适。尽管 Rails 模型不关心类型,但序列化方案 (JSON) 确实关心类型。在 JSON 中,数字和 bool 值不应序列化为字符串。

最佳答案

您使用 attr_accessor 定义类的属性以供 ActiveModel 使用。不需要类型。

参见 this question关于“键入的 attr_accessor”。

关于activerecord - Rails ActiveModel 属性类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9115772/

相关文章:

ruby-on-rails - postgreSql 和 Rails 命令

mysql - 获取 rails 中每个不同记录的所有列

ruby-on-rails - 运行索引迁移时,Rails 是否索引现有记录?

ruby-on-rails - Rails 无法识别 lib 文件?

ruby-on-rails - 如何通过关联表从同一列获取多个条件的记录

mysql - 在 Rails 中,数据库调用在开发中有效,但在测试中停滞

ruby-on-rails-3 - 为递归关系编写关联

ruby-on-rails - schema.rb 索引与单个迁移索引不同

ruby - 如何使用 Ruby on Rails Mustache 从 ActiveModel 在 HTML 中预览

ruby-on-rails-3 - 部署到 Heroku 的 Rails 项目 : Could not find activemodel