16

皆さん、

問題空間に2つのエンティティがあるアプリケーションの作成に取り組んでいます。1つのエンティティは「生物学者」であり、もう1つのエンティティは「実験」です。現在、1人の生物学者は多くの実験を行うことができ、各実験は多くの生物学者を行うことができます。

コマンドラインジェネレーターを使用してモデルとルートを作成する方法を知っています。

 rails generate scaffold Biologist name:string expertise:string last_pub:text

アソシエーションを追加する正しい方法は何ですか?生成後にモデルコードを更新するのですか?生成後に「belongs_to」アソシエーションを追加した場合、移行などを実行せずにDBスキーマにどのように反映されるのかがわかりません。上記の例では、「実験」が「生物学者」に属している場合、「生物学者」テーブルに外部キーがあります。生成後にモデルクラスに関連付けを追加すると、どのように作成されますか。私はレールにかなり慣れていないので、これが素朴な質問である場合はお詫び申し上げます。

4

3 に答える 3

51

私はあなたが次のようなものを探していると思います:

rails g scaffold Biologist experiment:references

Jose Valimによるこの記事を読んで、上記の方法を説明し、コマンドラインからdbインデックスを追加します。

于 2013-02-19T14:34:47.060 に答える
4

テーブルにbiologist_id列を追加するための移行を作成してから、モデルに関係を追加する必要があります。experimentsbelongs_to :biologistexperiments

詳細については、こちらをご覧ください。

于 2013-02-19T14:28:18.903 に答える
-1

それぞれのモデルを生成してから、結合テーブルを作成します。これは、多くの関係があるためです。規則に正しく従えば、レールは結合テーブルに与えられた関係を理解する必要があります。

一般に、アクティブなレコードの関係を変更する必要がある場合は、has_manyまたはhas_and_belongs_to_manyの関係を使用してモデルで変更する必要があります。

于 2013-02-19T20:53:15.170 に答える