seeds.rb与关系上的SQLite3 :: ConstraintException失败

时间:2011-10-04 21:14:18

标签: ruby-on-rails-3.1

我使用seeds.rb创建两条记录,其中一条记录属于另一条记录:

new_account = Account.create(name: 'AccountName')
new_user = User.create(
  email: 'foo@example.com', 
  password: 'pass', 
  password_confirmation: 'pass',  
  account: new_account)

此操作失败并显示SQLite3::ConstraintException,抱怨我没有设置account_id。如果我明确设置ID:

,它会成功
new_account = Account.create(name: 'AccountName')
new_user = User.create(
  email: 'foo@example.com', 
  password: 'pass', 
  password_confirmation: 'pass',  
  account_id: new_account.id)

我的理解是前一种方法应该有用 - 我错了,或者我只是做错了?我在Rails 3.1.0上,使用Devise 1.4.7。

1 个答案:

答案 0 :(得分:1)

它不应该以第一种方式工作,如错误所示。您必须像在第二个示例中那样明确指定id。 :)