Ruby on Rails测试夹具的id为0

时间:2014-02-26 21:23:35

标签: ruby-on-rails activerecord fixtures

我有一个User模型和一个UsageRecord模型,其外键为user_id。我的YAML灯具是这样的:

test/fixtures/users.yml

user_one:
  email: email@address.com

test/fixtures/usage_records.yml

one:
  user_id: user_one

如果我运行rake test,则测试失败,因为user_id上的UsageRecord无效。如果我运行RAILS_ENV=test rails c并检查数据库,确定唯一user_id的{​​{1}}的ID为0(与UsageRecord中的用户ID不匹配表)。

我在这里做错了什么?我希望它的用户ID为293267324,与生成的Users模型匹配。

更新我发现了问题。我不必指定User,而是使用关联名称。将user_id YAML切换为UsageRecord有效。

1 个答案:

答案 0 :(得分:1)

诀窍是使用关联名称而不是列名,它们最终将具有该值。例如,不要为user_id设置UsageRecord,而是设置user。这将正确执行链接。