【问题标题】:Creating readable models in rails在 Rails 中创建可读模型
【发布时间】:2011-05-19 07:08:57
【问题描述】:

我刚开始使用 Rails 并且来自 .net 背景,我发现从 ActiveRecord 继承的模型很难理解,因为它不包含模型的相应属性。我无法想象一个新开发人员会接触到大型代码,其中模型只包含对其他模型和业务逻辑的引用。

在我看来,DataMapper 模型更容易掌握,但由于 ActiveRecord 是事实上的标准,仅仅为了这个小问题而更改 ORM 感觉很奇怪。

数据映射器

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

我不确定这是否是一个问题,人们是否习惯了没有属性的模型,或者有经验的 Rails 用户如何处理这个问题?

我不认为使用数据库管理器或查看大量迁移脚本来查找属性是一种选择?

指定 attr_accessible 将使模型更具可读性,但我不确定它是否适合我的问题?

【问题讨论】:

    标签: ruby-on-rails activerecord


    【解决方案1】:

    查看 github 上的 annotate_models 插件。它将在注释块中为每个模型插入一个注释模式。可以在migrate的时候安装运行。

    【讨论】:

    • annotate_models 很好,我会将它用于我的模型。即使我更喜欢 DataMapper,我也会坚持使用 ActiveRecord,因为它是默认设置。
    • 我同意 grifaton 在下面的答案中。您的 db/schema.rb 文件实际上是查找此信息的地方。我见过的每个使用 annotate_models 的项目都有过时的 cmets。人们忘记运行任务和/或厌倦了模型文件顶部的噪音。
    【解决方案2】:

    您不必“查看大量迁移脚本来查找属性” - 它们都定义在 db/schema.rb 中的一个位置。

    【讨论】:

      【解决方案3】:

      一些提示:

      • 加载 Rails 控制台并输入 Post.column_names 快速 提醒属性名称。 Post.columns给你专栏 对象,显示数据类型

      • db/schema.rb 包含所有 迁移代码在一个地方,所以你 可以轻松查看所有列 定义。

      • 如果您使用的是 体面的编辑器/IDE应该有办法 允许您从模型文件中跳转 到迁移文件。 (例如 Emacs 与 ROR 或 Rinari)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多