加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在Rails单元测试中,如何让用户夹具加载其关联

发布时间:2020-12-16 23:03:18 所属栏目:百科 来源:网络整理
导读:在有关夹具( http://api.rubyonrails.org/classes/Fixtures.html)的文档中,它们提供了以下使用关联标签引用的示例: ### in pirates.ymlreginald: name: Reginald the Pirate monkey: george### in monkeys.ymlgeorge: name: George the Monkey pirate: regi
在有关夹具( http://api.rubyonrails.org/classes/Fixtures.html)的文档中,它们提供了以下使用关联标签引用的示例:
### in pirates.yml
reginald:
  name: Reginald the Pirate
  monkey: george

### in monkeys.yml
george:
  name: George the Monkey
  pirate: reginald

因此,在他们的领导下,我有一个用户模型has_one:profile,一个个人资料:belongs_to:user,并尝试按照他们的示例设置灯具:

### in users.yml
reginald:
  id: 1
  login: reginald

### in profiles.yml
reginalds_profile:
  id: 1
  name: Reginald the Pirate
  user: reginald

(注意:由于我的关联是单向的,因此用户夹具没有“profile:reginalds_profile”关联 – 将其放入会导致错误,因为SQL表没有profile_id属性.)

问题是,在我的单元测试中,一切似乎都正确加载,但用户(:reginald).profile总是为零.我错过了什么?

解决方法

基于tadman的建议,我做了一些搜索,并在本网站的其他地方找到了答案,所以我不妨发布它.

见标题为Automatic associations in ruby on rails fixtures的帖子

显然,当你使用标签(用户:reginald)而不是ID(user_id:1)时,Rails找到相关灯具的方式是通过散列名称并假设散列是ID.如果将ID设置为特定的ID,则会失败.但是如果你让Rails自动分配ID,它就会使用该散列方案.因此,夹具关联标签的文档缺少关键信息 – 如果您使用标签,则必须避免在要匹配的夹具中应用您自己的ID.未与标签匹配的灯具仍可以使用您选择的任何ID方案.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读