首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >夹具中的不正确关联

夹具中的不正确关联
EN

Stack Overflow用户
提问于 2014-06-01 23:56:53
回答 2查看 264关注 0票数 3

我遵循Rails 4.1.1的指南http://guides.rubyonrails.org/testing.html#the-low-down-on-fixtures,并在https://github.com/codetriage/codetriage项目中相互使用命名的固定装置。但是,当我试图从另一个夹具引用时,它不起作用:

代码语言:javascript
复制
# fixtures/issues.rb

issue_triage_sandbox_issue:
  id: 4
  comment_count:
  url: https://api.github.com/repos/bemurphy/issue_triage_sandbox/issues/1
  last_touched_at: 2012-11-10 22:20:24.000000000 Z
  number: 1
  created_at: 2012-11-10 23:23:45.281189000 Z
  updated_at: 2012-11-10 23:23:45.281189000 Z
  repo: issue_triage_sandbox
  title: first test issue in sinatra
  html_url: https://github.com/sinatra/sinatra/issues/1
  state: open

代码语言:javascript
复制
# fixtures/users.rb

issue_triage_sandbox:
  id: 1
  user_name: bemurphy
  name: issue_triage_sandbox
  full_name: bemurphy/issue_triage_sandbox
  language: ruby
  created_at: 2012-11-10 21:50:48.351554000 Z
  updated_at: 2012-11-10 21:50:48.351554000 Z
  issues_count: 1

您可以看到问题应该是加载回购issue_triage_sandbox回购。但在我的测试中不是:

代码语言:javascript
复制
issue = issues(:issue_triage_sandbox_issue)
puts issue.repo
# => nil

puts issue.inspect
#<Issue id: 4, comment_count: nil, url: "https://api.github.com/repos/bemurphy/issue_triage...", repo_name: nil, user_name: nil, last_touched_at: "2012-11-10 22:20:24", number: 1, created_at: "2012-11-10 23:23:45", updated_at: "2012-11-10 23:23:45", repo_id: 915227508, title: "first test issue in sinatra", html_url: "https://github.com/sinatra/sinatra/issues/1", state: "open", pr_attached: false>     

有什么想法吗?为什么这个问题是通过引用一个不存在的回购而产生的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-02 01:59:49

我认为它必须使用repos夹具中的id属性。我用的是yml装置。我把这个问题和回购问题加到了项目中现有的问题上。

issues.yml

代码语言:javascript
复制
issue_triage_sandbox:
  user_name: bemurphy
  name: issue_triage_sandbox
  full_name: bemurphy/issue_triage_sandbox
  language: ruby
  created_at: 2012-11-10 21:50:48.351554000 Z
  updated_at: 2012-11-10 21:50:48.351554000 Z
  issues_count: 1

repos.yml

代码语言:javascript
复制
issue_triage_sandbox:
  user_name: bemurphy
  name: issue_triage_sandbox
  full_name: bemurphy/issue_triage_sandbox
  language: ruby
  created_at: 2012-11-10 21:50:48.351554000 Z
  updated_at: 2012-11-10 21:50:48.351554000 Z
  issues_count: 1

从控制台:

rake db:夹具:load RAILS_ENV=test rails c#测试

代码语言:javascript
复制
irb(main):001:0> i = Issue.last

=> #分流.“,repo_name: 0,user_name: 0,last_touched_at:"2012-11-10 22:20:24",数字: 1,created_at:"2012-11-10 23:23:45",updated_at:"2012-11-10 23:23:45",repo_id: 915227508,标题:“sinatra的第一个测试问题”,html_url:"https://github.com/sinatra/sinatra/issues/1",状态:“打开”,pr_attached: false>

代码语言:javascript
复制
irb(main):002:0> i.repo

票数 1
EN

Stack Overflow用户

发布于 2014-06-02 00:59:42

基于项目这里中的代码,Issues似乎属于Repos。我想知道这些固定装置在这种关系中是否有“倒退”的问题。

您可以尝试使用ERB获取适当夹具的ID,并将其应用如下:repo_id: <%= ActiveRecord::FixtureSet.identify(:issue_triage_sandbox) %>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23985675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档