3

最近我从django开发转换到全时间导轨工作,这是一个相当小的商店,我正在从书本上和我自己的东西中挑选一些东西。从Django到Rails,你如何继续使用rails模型?

上周,当我得知rails的模型不能反映数据库中的内容时,我的心理模型受到了重创。

见例子的不同之处:http://www.peterkrantz.com/2009/rails-grails-django-models/

什么我好奇的是我如何不断地修改模型以支持新的数据类型和关系?

此外,有没有办法让模型文件中显示的特定类的表中的所有属性?

感谢

回答

5

我觉得migrations是你在找什么。

如果你想在所有的模型文件栏目的,使用annotate gem

+0

所以工作流程是: 1.设计新的模式 2.迁移实现它 3.使用注释,以保持最高的评论 - 最新描述使用 –

+0

@克里斯是架构。还有一个关于[gem的页面](https://github.com/ctran/annotate_models)的说明,“如果您将annotate_models作为插件安装,它会自动调整您的rake db:migrate任务,以便它们更新注释在您的模型文件中为您完成迁移。“但我只是不时运行'注释 - 排除测试,夹具 - 位置之前' – maprihoda

1

这取决于你使用ORM。虽然ActiveRecord确实从数据库中提取模式,但Mongoid提供了注释模型。这是我当前项目中的一个模型:

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的无模式性质。没有这样的声明,所有字段都会有动态类型(默认情况下为String)。声明有助于强制类型。

此外,与MongoDB你没有migrations和annotate宝石将无济于事。

+0

感谢你的这一点,如果有任何项目偏离ActiveRecord,它可能会有所帮助。 –