Ruby on rails 在rails中创建可读模型
我刚开始学习Rails,来自.net背景,我发现从ActiveRecord继承的模型很难理解,因为模型不包含相应的属性。我无法想象一个新的开发人员会接触到一个大型代码,其中模型只包含对其他模型和业务逻辑的引用 从我的观点来看,DataMapper模型更容易掌握,但由于ActiveRecord是事实上的标准,仅仅为了这个小问题而更改ORM感觉很奇怪 数据映射器 活动记录Ruby on rails 在rails中创建可读模型,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我刚开始学习Rails,来自.net背景,我发现从ActiveRecord继承的模型很难理解,因为模型不包含相应的属性。我无法想象一个新的开发人员会接触到一个大型代码,其中模型只包含对其他模型和业务逻辑的引用 从我的观点来看,DataMapper模型更容易掌握,但由于ActiveRecord是事实上的标准,仅仅为了这个小问题而更改ORM感觉很奇怪 数据映射器 活动记录 class Post
class Post
我不确定这是否是一个问题,人们是否习惯了没有属性的模型,或者有经验的rails用户如何处理这个问题
我不认为使用数据库管理器或查看大量迁移脚本来查找属性是一种选择
指定attr\u accessible将使模型更具可读性,但我不确定它是否适合解决我的问题?查看github上的annotate\u models插件。它将在注释块中为每个模型插入注释模式。它可以安装为在迁移时运行。您不必“查看大量迁移脚本以查找属性”-它们都在db/schema.rb中的一个位置定义。一些提示:
- 加载Rails控制台并进入
快速浏览 属性名称的提醒。Post.column\u name
为您提供列 对象,它显示数据类型Post.columns
- db/schema.rb包含所有 迁移代码在一个地方,所以 可以很容易地看到所有的列 定义
- 如果您使用的是 体面的编辑器/IDE应该有一种方法 允许您从模型文件跳转 到迁移文件。(例如,Emacs 与ROR或Rinari一起)
class Post
include DataMapper::Resource
property :id, Serial # An auto-increment integer key
property :title, String # A varchar type string, for short strings
property :body, Text # A text block, for longer string data.
property :created_at, DateTime # A DateTime, for any date you might like.
end
class Post < ActiveRecord::Base
end