2016-09-20 11 views
0

私のPostgresデータベースには、categoriesproductsという2つのテーブルがあります。2つのテーブル間のレールの関連付け

私は1対多の関係が定義されていますが、1つのカテゴリは多くの製品を持つことができます。

これらをRailsの2つのモデルで定義した後、テーブルに何か必要なことはありますか?私はまだ各モデルを別々にセットアップするときにRailsが定義したプライマリキーしか持っていません。

+0

です。移行で作成されたテーブルに外部キー参照が表示されると思われますか? – mrstebo

+0

ええと、アクティブレコードファイルに関連付けを追加した後で、データベースを掘り起こす必要はありますか?私はそれをしていない。しかし、私は、カテゴリに戻って製品を指し示す別のキー(外国語)が必要になると思います。 –

+0

私はあなたが外部キーを追加する必要があると思う:データベースに外部キーが作成されていることを確認したい列の真。 http://stackoverflow.com/questions/16257116/adding-foreign-key-to-a-rails-model – mrstebo

答えて

1

適切なパラメータを指定して移行ジェネレータを実行すると、外部キーを設定できます。あなたはデシベルを見てみるとお分かりになるディレクトリを移行/プロセス

を完了するために、

#product.rb 
belongs_to :category 

#category.rb 
has_many :products 

実行rake db:migrate

bin/rails generate migration AddCategoryRefToProducts category:references 

これは、あなたがこれらの団体と製品モデルとカテゴリのモデルを持っていると仮定しdef changeブロック内にadd_reference行を含むファイル。その方法の参考資料はRails APIです。スタンドアロンジェネレータの構文はfrom the Rails Guides

+0

を参照してくださいありがとう!私はちょうどそれを試みた。今私はテーブルが接続されていると思います。 –

+0

このカテゴリを自動的に含むように製品フォームを再生成することはできますか?または、手動でドロップダウンを挿入する必要がありますか? –

+0

一般に、足場はプロトタイプの作成に使用されます。一般的には、そのプロトタイプを手動で更新します。私は、あなたがモデルを変更してビューを再生成できるようにするつもりはないと思います。 –

関連する問題