【问题标题】:Ruby on Rails test fixture given id of 0给定 id 为 0 的 Ruby on Rails 测试夹具
【发布时间】:2014-02-26 21:23:34
【问题描述】:

我有一个User 模型和一个具有user_id 外键的UsageRecord 模型。我的 YAML 装置是这样的:

test/fixtures/users.yml

user_one:
  email: email@address.com

test/fixtures/usage_records.yml

one:
  user_id: user_one

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

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

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

【问题讨论】:

    标签: ruby-on-rails activerecord fixtures


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      相关资源
      最近更新 更多