2017-10-23 18 views
1

に所属してアプリ用のデータベースを播種すると、関係BELONGS_TOにhas_manyのためのデータベースを播種すると、あなたのseeds.rbファイルは次のようなものになります。あり、多くの関係

t1 = Tag.create(title: "Beaches", image: "beach01.jpg") 
Destination.create(
    name: "Ipanema", 
    description: "The beach of Ipanema is known for its elegant development and its social life.", 
    image: "beach02.jpg", 
    tag_id: t1.id 
) 
Destination.create(
    name: "7 Mile Beach", 
    description: "The western coastline contains the island's finest beaches.", 
    image: "beach03.jpg", 
    tag_id: t1.id 
) 
Destination.create(
    name: "El Castillo", 
    description: "An elite destination famous for its white sand beaches", 
    image: "beach04.jpg", 
    tag_id: t1.id 
) 

を私の質問は、どのようなあなたの場合ですデータベースにhas_manyモデルのアイテムが既にシードされているので、belongs_toモデル内のアイテムにrake db:seedを使用したいだけです。私seeds.rbにちょうど

Destination.create(
    name: "Ipanema", 
    description: "The beach of Ipanema is known for its elegant development and its social life.", 
    image: "beach02.jpg", 
    tag_id: t1.id 
) 
Destination.create(
    name: "7 Mile Beach", 
    description: "The western coastline contains the island's finest beaches.", 
    image: "beach03.jpg", 
    tag_id: t1.id 
) 
Destination.create(
    name: "El Castillo", 
    description: "An elite destination famous for its white sand beaches", 
    image: "beach04.jpg", 
    tag_id: t1.id 
) 

で種子が、私は

NameError: Undefined local variable or method t1 for main:Object.

を得る:私はすくいデシベルを実行しました意味TAG_IDでタグ付けするだけdestinations.createと参照とシード:私は、実行中のすくいデシベルを試してみました

タグが既にデータベース内にある場合、宛先だけでデータベースをシードする方法はありますか?

答えて

0

あなたは、これは実際には機能しなかったことをしようとしたらt1 = Tag.where(title: "Beaches", image: "beach01.jpg").first_or_create声明

+0

で既存のタグを見つけることができます。 .first_or_createステートメントとは何ですか? – fineboy1

+0

これを参照してください[SO記事](https://stackoverflow.com/questions/42178674/first-or-create-vs-find-or-create-by) –

+0

どのようなRailsのバージョンを使用していますか? –