Ruby on rails 给定id为0的Ruby on Rails测试夹具

Ruby on rails 给定id为0的Ruby on Rails测试夹具,ruby-on-rails,activerecord,fixtures,Ruby On Rails,Activerecord,Fixtures,我有一个User型号和一个UsageRecord型号,外键为User\u id。我的YAML装置如下所示: test/fixture/users.yml user_one: email: email@address.com one: user_id: user_one test/fixture/usage\u records.yml user_one: email: email@address.com one: user_id: user_one 如果我运行rake测试测

我有一个
User
型号和一个
UsageRecord
型号,外键为
User\u id
。我的YAML装置如下所示:

test/fixture/users.yml

user_one:
  email: email@address.com
one:
  user_id: user_one
test/fixture/usage\u records.yml

user_one:
  email: email@address.com
one:
  user_id: user_one
如果我运行
rake测试
测试失败,因为
UsageRecord
上的
user\u id
无效。如果我运行
RAILS\u ENV=test RAILS c
并检查数据库,那么可以肯定的是,唯一
UsageRecord
用户id
的id为0(与
Users
表中的用户id不匹配)

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

更新我发现了问题。我没有指定
user\u id
,而是使用了关联名称。将
UsageRecord
YAML切换为
user:one
有效。

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