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
。这将正确执行链接