2

Railsでこのようにユーザーとそのプロファイルの間に関係を作成しています

User has_one :profile
Profile belongs_to :user

通常の状況では、Railsがこれら2つのモデル間に外部キー関係を自動的に作成することを理解しています。ただし、次の方法でデータベースに情報をシードし、多くのユーザーを作成し、多くのプロファイルを作成する場合、たとえば、JoeのプロファイルがJoeのユーザーアカウントにリンクされていることを確認するにはどうすればよいですか。

User.create!(email: "j@gmail.com", password: "blahblah", encryptedpass: "3838")
Profile.create!(first_name: "Joe", last_name: "Frank", address: "43 Flint Road", phone: "604 345 678", )

 User.create!(email: "anne@gmail.com", password: "blahblahblah", encryptedpass: "4567")
Profile.create!(first_name: "Anna", last_name: "Jones", address: "43 Boogy Road", phone: "604 345 678", )

...この方法でシードされている何千ものユーザーとプロファイルを想像してみてください...

プロファイルに外部キーを設定する必要がuser_idありますか?それをシードするために、外部キーIDを作成するだけですか?Railsは私のためにそれを生成できますか?たとえば、Joeのプロファイルに外部キーを作成しuser_id: 1た場合、ユーザーモデルのインスタンスが「1」になるようにするにはどうすればよいですか。つまり、彼のuser_id外部キーを手動で設定した場合、どうすればそれを確認できますか。ユーザーモデルのIDと一致しますか?

4

1 に答える 1

3

create_profile! メソッドを使用できます(これは、宣言するときにRailsによって作成されますhas_one :profile

u = User.create!(email: "j@gmail.com", password: "blahblah", encryptedpass: "3838")
u.create_profile!(first_name: "Joe", last_name: "Frank", address: "43 Flint Road")
于 2013-01-22T19:27:49.303 に答える