我刚开始使用Rails并且来自.net背景我发现继承ActiveRecord的模型很难理解,因为它不包含模型的相应属性。我无法想象一个新的开发人员接触到大型代码,其中模型只包含对其他模型和业务逻辑的引用。
从我的角度来看,DataMapper模型更容易掌握,但由于ActiveRecord是事实上的标准,因此仅针对这个小问题更改ORM会感觉很奇怪。
DataMapper的
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
ActiveRecord的
class Post < ActiveRecord::Base
end
我不确定这是否是一个问题,人们习惯了没有属性的模型,或者经验丰富的rails用户如何处理这个问题?
我不认为使用数据库管理器或查看大量迁移脚本来查找属性是一种选择吗?
指定 attr_accessible 会使模型更具可读性,但我不确定它是否适合解决我的问题?
答案 0 :(得分:4)
查看github上的annotate_models插件。它将在注释块中为每个模型插入注释模式。它可以安装在迁移时运行。
答案 1 :(得分:2)
您不必“查看大量迁移脚本来查找属性” - 它们都在db / schema.rb中的一个位置定义。
答案 2 :(得分:2)
一些提示:
加载Rails控制台并输入
Post.column_names
快速
提醒属性名称。
Post.columns
为您提供了专栏
对象,显示数据类型
db / schema.rb包含所有 迁移代码在一个地方,所以你 可以很容易地看到所有专栏 定义
如果您正在使用 体面的编辑/ IDE应该有办法 允许您从模型文件跳转 到迁移文件。 (例如Emacs 与ROR或Rinari)