我在Rails
中创建用户及其配置文件之间的关系User has_one :profile
Profile belongs_to :user
据我所知,在正常情况下,Rails会自动在这两个模型之间创建外键关系。但是,当我使用以下方式为数据库播种时,创建了许多用户并创建了许多配置文件,那么我如何确保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?我可以用轨道生成它吗?例如,我在Joe的配置文件上创建了一个外键user_id: 1
我如何确定他的用户模型实例将为“1”换句话说,如果我手动设置他的user_id外键,怎么能我确保它会匹配用户模型的ID?
答案 0 :(得分:3)
您可以使用create_profile!
method(当您声明has_one :profile
时由Rails创建
u = User.create!(email: "j@gmail.com", password: "blahblah", encryptedpass: "3838")
u.create_profile!(first_name: "Joe", last_name: "Frank", address: "43 Flint Road")