2016-07-27 16 views
1

ユーザーとその大陸と言語を入力できるシンプルなフォームを作成しようとしています。シンプルフォームアプリケーションで「フィールドが存在する必要があります」エラー

ユーザーは大陸と言語に属し、 大陸と言語はhas_manyユーザーです。

$rails generate scaffold language name:string 

$rails generate scaffold continent name:string 

$rails g scaffold user name:string language:belongs_to continent:belongs_to 

私はlocalhostに行く:3000 /言語とはlocalhost:3000 /大陸をし、それが言う新しいエントリを作成し、「大陸/言語」は正常に作成

私はbashで以下の3つのコマンドを実行しました。

しかし、新しいユーザーを作成しようとすると、「言語は存在している必要があります」と「大陸は存在していなければなりません」というエラーが表示されます。

エラーの原因とは何ですか?どのように修正しますか?

1)あなたのユーザー足場を元に戻すrails d scaffold User

2)次に、あなたが任意の参照

3)このような足場を作成、削除してください:

答えて

1

私は最善の方法は、このだと思います
rails g scaffold User name:string 

4)対応する移行を作成します(これは、すべてを別々に保つための最良の方法です)。

rails g migration AddContinetIdToUsers continent_id:intenger 

5)languagueのために同じことを行います

rails g migration AddLanguageIdToUsers language_id:intenger 

6)あなたのモデルに移動して、対応するhas_manybelogns_to関連付けを追加します。

7)これはすべてですが、問題はありません。整合性とデータ操作

ためseparete移行を保つ覚えておいてください時には、あなたが示唆した1つのライン( $はグラム足場ユーザー名レール:文字列)サーバー

+0

を再起動する必要がある結果がそこに入力するフィールドでない「の言語を"と"大陸 "をユーザーページに表示します。 –

+0

あなたはモデルにrelathionshipを追加するだけです。 ビューにフィールドを設定する必要があります。足場を使用して物事を生成するという事実は、それがすべての論理を生み出すことを意味するものではありません。 ランググーと大陸を設定するには、ビュー、フィールドを呼び出す必要があります。 これを確認してください:http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html @ azeez3jがあなたの意見とコントローラについて尋ねたのは、それが理由だと思います。すべてのロジックを実装する必要があります。 よろしく –

関連する問題