3

最近、私はジャンゴの開発からフルタイムのレイルの仕事に変わった、それはかなり小さなお店であり、私は本の中から物事を選んでいます。DjangoからRailsまで、どのようにレールモデルを使って継続して作業しますか?

先週、私は、レールのモデルがデータベースの内容を反映していないことを知ったとき、私の精神モデルに大きな打撃を受けました。

違いの例を参照してください:私は好奇心が強いhttp://www.peterkrantz.com/2009/rails-grails-django-models/

何を、どのように私は常に新しいデータ型との関係をサポートするために、モデルを変更しますでしょうか?

また、モデルファイルに表示されている特定のクラスのすべての属性をテーブルに保持する方法はありますか?私はmigrationsは、あなたが探しているものだと思います

おかげ

答えて

5

あなたはモデルファイルに示されているすべての列、これはあなたが使用してORMに依存annotate gem

+0

だから、ワークフローは次のとおりです。 1.デザイン新しいスキーマ 2.移行に –

+0

@クリスはいを使用しているスキーマを記述ツー日付までコメントを保つために 3.の注釈を、それを実装します。また、[gemのページ](https://github.com/ctran/annotate_models)に「annotate_modelsをプラグインとしてインストールすると、自動的にrake dbが調整されます:アノテーションを更新するようにタスクを移行しますマイグレーションが完了したら、あなたのためのあなたのモデルファイルで。しかし、私はちょうど 'annotate --exclude tests、fixtures --position before'を時々実行します。 – maprihoda

1

を使用したい場合。 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では移行がなく、annotate gemはここでは役に立ちません。

+0

これはおかげで、将来プロジェクトがActiveRecordから逸脱した場合に役立ちます。 –

関連する問題