FactoryGirl未注册(只有一家工厂遇到此事)
我有三种模式:用户,网站和护照。
用户和站点彼此拥有并且属于彼此,而护照是具有几个额外列的连接模型。
我尝试了以下两种方法:
1。
FactoryGirl.define do factory :passports do association :site, factory: :site association :user, factory: :user access_token 'mock_token' end end
2。
FactoryGirl.define do factory :passports do access_token 'mock_token' end end
无论哪种方式,我都用它:
let(:site) { FactoryGirl.create :site } let(:user) { FactoryGirl.create :user } let(:site_user) { FactoryGirl.create :site_user, site: site, user: user } let(:passport) { FactoryGirl.create :passport, user: user, site: site }
请不要问为什么有site_user和护照..这需要一段时间来解释。
谢谢!
马克斯
所以,重述一下:
# Sites has_many :passports has_many_and_belongs_to :users, :through => :passport # User has_many :passports has_many_and_belongs to :sites, :through => :passport # Pasport belongs_to :site belongs_to :user # has a few other things going on as wel
我认为你应该可以做类似的事情
FactoryGirl.define do factory :user do # details go here end factory :site_with_users do users { |site| [site.association(:user), site.association(:user)] } end end
然后你应该能够做到
let( :site_with_users ) { FactoryGirl.create :site_with_users }
但这些都是猜测,希望它会帮助你。
OMFG这个很蠢……
切换到Factory.define:passport do | f | 语法使它工作…
吹掉一小时半生产力的好方法
- 工厂女孩“捆绑安装”期间的“无效的gemspec”消息(rails 3.1和ruby 1.9.2p290)
- Rails 4使用Engine的Factory Girl工厂
- 使用OmniAuth在Factory Girl中创建用户?
- 我如何分享我在创业板上的工厂并在其他项目中使用它?
- Rspec validates_uniqueness_of测试失败并出现其他validation错误
- rspec +工厂模型测试嵌套属性
- Factory Girl + Rspec给出以下错误:ActionView :: Template :: Error :(对象id)不是id值
- 如何在错误的rspec规范之间清理我的数据库?
- 如何在factory_girl中构建/创建多对多关联?