Ruby on rails 从Django到Rails,您如何持续使用Rails模型?

Ruby on rails 从Django到Rails,您如何持续使用Rails模型?,ruby-on-rails,django-models,rails-migrations,rails-models,Ruby On Rails,Django Models,Rails Migrations,Rails Models,最近,我从django开发转变为全职rails工作,这是一个相当小的商店,我正在从书中挑选东西,并在我走的时候自己挑选 上周,当我得知rails的模型不能反映数据库中的内容时,我的心智模型受到了沉重的打击 请参见差异示例: 我想知道的是,如何不断修改模型以支持新的数据类型和关系 另外,是否有一种方法可以将特定类的所有属性都显示在模型文件中的表中 谢谢我想这就是你要找的 如果要在模型文件中显示所有列,请使用这取决于您使用的ORM。虽然ActiveRecord确实从数据库中获取模式,但它提供了对模型

最近,我从django开发转变为全职rails工作,这是一个相当小的商店,我正在从书中挑选东西,并在我走的时候自己挑选

上周,当我得知rails的模型不能反映数据库中的内容时,我的心智模型受到了沉重的打击

请参见差异示例:

我想知道的是,如何不断修改模型以支持新的数据类型和关系

另外,是否有一种方法可以将特定类的所有属性都显示在模型文件中的表中

谢谢

我想这就是你要找的


如果要在模型文件中显示所有列,请使用

这取决于您使用的ORM。虽然ActiveRecord确实从数据库中获取模式,但它提供了对模型进行注释的功能。以下是我当前项目中的一个模型:

class DailyStat

  include Mongoid::Document

  identity :type => String

  field :app_id, :type => Integer
  field :date, :type => DateTime

  field :stats, :type => Hash
  field :totals, :type => Hash
  field :counts, :type => Hash
end
这是因为MongoDB的无模式性。如果没有这样的声明,所有字段都将具有动态类型(默认为字符串)。和声明有助于强制类型


此外,使用MongoDB时,您没有迁移,gem在这里也帮不上忙。

因此工作流是:1。设计新的模式2。通过迁移3实现它。使用annotate使注释保持最新,这些注释描述了正在使用的架构used@Chris对上还有一条注释说“如果您将annotate_模型作为插件安装,它将自动调整rake db:migrate任务,以便在迁移完成后为您更新模型文件中的注释。”但我只是运行
annotate--exclude测试,fixtures——不时在
之前定位感谢这一点,如果将来有任何项目偏离ActiveRecord,它可能会有所帮助。