seed.rb
特にテーブルのリレーションシップが関係している場合、を使用してデータベースをシードするのに問題があります。
コードのサンプルを次に示します。
# seed.rb
user = User.find_or_create_by_login(
:login => "myname",
:email => "myname@gmail.com",
:user_type => "Admin",
:password => "admin",
:password_confirmation => "admin")
project = Project.find_or_create_by_user_id(
:user_id => user.id,
:name => "Test Project")
プロジェクトが作成されると (上で省略した他の無関係なパラメーターと共に)、user_id は空です。どうすればこれを機能させることができますか?
これは、とても単純なもので私が見た中で最も奇妙な動作です。私のシード ファイルには、約 8 つのテーブルが作成されており、いくつかは 3 ~ 4 レベルの深さでネストされています (つまり、ユーザー has_many プロジェクト、プロジェクト has_many タスクなど)。
上記のようにユーザーを呼び出し、その後複数回user
参照すると、一度しか機能しません! user.id
新しい各レコードが作成される前に [user.reload] を追加しようとしましたが、役に立ちませんでした。これが誰にとっても意味があるとは思いませんが、ここに何か可能性はありますか? 皆さんありがとう。