0

だから私はフレームワークの使い方を学ぶためにRailsアプリケーションを作っています。

私は以下を使用してユーザーを作成しました:

rails g model User name:string

次に、ユーザーには別の属性と、user_roleという別のリソースとの関係も必要であることに気付きました。私のUserRoleモデルは次のようなものだとしましょう:

rails g model userRole roleName:string

これまでのところ、移行を使用してのみ変更を実現できることがわかりましたが、古いデータが実際にはないため、モデルを調整しているだけなので、これはかなり不便で不明確です。

初心者のためのアドバイスはありますか?

4

3 に答える 3

0

移行は非常に役立ちます。スキーマの変更を追跡します。ただし、移行を作成した直後にフィールドを追加するのを忘れた場合は、新しい移行を作成せずに古い移行を編集できます。データベースを ( を使用して) 既に移行しているrake db:migrate場合は、ロールバックできます。

rake db:rollback

ここで、移行ファイルを編集し、フィールドを追加/削除します。完了したら、再度移行します

rake db:migrate

別のモデルを作成するときは、別の移行を作成する必要があります。そうしないと、将来、自分自身が混乱することになります。ところで、子モデルを作成するときは、親の移行を変更する必要はありません。子テーブルに外部キーを追加する必要があります。次のようなものを使用できます。

rails g model Comment post:references 

post_idこれにより、コメント テーブルに追加されます。

于 2012-11-15T04:23:29.430 に答える
0

データベースに依存しない ActiveModel のようなモデルを試すことができます。たとえば、Mongoid や Datamapper などです。多くの NoSQL ソリューションでは、モデルを変更するための移行は必要ありません。

于 2012-11-15T04:47:54.413 に答える