私はRuby on Railsを勉強していて、ファイルとコードの構造と混同しています。 なぜRailsテーブルのフィールドはマイグレーションで定義されていますが、モデルでは定義されていませんか? 私は知っている、どのようなモデルが必要です。しかし、あらゆるフレームワークのようなレールは、開発者の作業を容易にし、汚れた作業をすべてフードの下に置くことを目指しています。 さらに、モデルと移行の両方でデータベースの関係を定義しますか? しかし、我々はただ一つの場所にそれらを定義し、自動的に別のものに移すことができ..なぜRailsテーブルのフィールドはマイグレーションで定義されていますが、モデルでは定義されていませんか?
0
A
答えて
4
をレールにテーブルのフィールドは、移行中にではなく、モデルで定義されているのはなぜ?
そうではありません。それらはデータベースに定義されています。移行が実行されたら、それらを削除することができ、モデルは引き続きテーブルの定義を完全に認識します。 SQL文やGUIツールを手動で実行するなど、他の方法でデータベースを構築することを選択した場合、Railsアプリケーションを構築して実行することもできます。
また、モデルと移行の両方でデータベースの関係を定義しますか?
いいえ、モデルのみです。移行は、データベースの変更を導入するためのものです。その目的は、データベースの変更を、アプリケーションコードの依存する変更と共に展開できるようにすることです。お使いのモデルで団体:
しかし、私たちはただ一つの場所にそれらを定義し、自動的に別のものに移すことができ..
あなたの関係は一つの場所で定義されてあります。あなたのデータベースは外部キーのような追加の制約を加えることができますが、Railsに関する限り、2つのモデルを関連付けるアソシエーションがない場合、それらのモデルはリンクされません。
関連する問題
- 1. Rails 5でマイグレーションのモデルが定義されていない
- 2. 変数はコンポーネントでは定義されていませんが、プロバイダのテンプレートで定義されています
- 3. Rails 3.0.7でfirst_or_createが定義されていませんか?
- 4. JavaScript関数はFireFoxでのみ定義されていません - indeed_clkは定義されていません
- 5. RandomクラスはRailsで定義されていません
- 6. Javascript - 定義はcdnから定義されていません
- 7. Ruby on Rails3:なぜこのフィールドは定義されていませんか?
- 8. JQueryがRailsで定義されていません
- 9. 応答データは定義されていますが、data.valueは定義されていませんか?
- 10. モデルが定義されていない
- 11. ngモデルの値は常に定義されていません
- 12. 親モデルのメソッドは定義されていません
- 13. モデル内のマングースモデルは定義されていません
- 14. ruby on railsの "Googleは定義されていません"エラー
- 15. Rails:メソッド定義の初期化後に$が定義されていません
- 16. Ruby on Railsメソッドは定義されていません
- 17. 未知ReferenceError:定義が定義されていません
- 18. ユーザー定義型が定義されていませんadodb.recordset
- 19. 定義が定義されていません(ESLint)
- 20. ユーザー定義型が定義されていません。vb6
- 21. Typescriptモジュール:定義が定義されていません
- 22. VBA - ユーザー定義型が定義されていません
- 23. Ember JS:定義が定義されていません
- 24. エースエディタ "定義が定義されていません"
- 25. VBAユーザー定義型が定義されていません
- 26. 定義が定義されていません - Ember JS
- 27. Firebaseの値は、定義されていないときは定義されていません
- 28. propsは定義されていませんが、状態が定義されています
- 29. バックボーンthis.modelは定義されていません、なぜですか?
- 30. キャッチされていないReferenceError:web3がwindow.onloadで定義されていません
ActiveRecordはRuby全体の柔軟性を利用しているため、モデルの列をDBに設定するだけで済みます。 IMHOは、あなたのモデル、XMLまたはいくつかの曖昧なコードアノテーション言語にたくさんの属性を書く必要があることに比べて大きな利点があります。 – max
ありがとうございます。しかし、私たちは引き続き移行ファイルに関連付けることができますか? – Liker777
@ Liker777いいえ。移行で関連付けを行うことはできません。あなたのモデルには、関連付けは*のみ*存在します。移行によってデータベースに外部キーが導入される可能性がありますが、外部キーはActiveRecordの関連ではありません**。 – meagar