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,它可能會有所幫助。 –