首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >工厂女孩协会-不确定的方法-所谓的协会

工厂女孩协会-不确定的方法-所谓的协会
EN

Stack Overflow用户
提问于 2014-04-14 15:48:23
回答 1查看 1K关注 0票数 0

我试图用两个FactoryGirl模型创建一个错误。我有汽车和汽车制造商。汽车属于汽车制造商,所以外键/变量属于汽车。当我运行我的测试时,我会得到这个错误。

代码语言:javascript
复制
Failure/Error: car = FactoryGirl.build(:car)
 NoMethodError:
   undefined method `car_manufacturer=' for #<Car:0x0000010437a7d0>

这里是我的工厂位于规范/工厂文件夹中

代码语言:javascript
复制
FactoryGirl.define do
  factory :car do
  color 'Black'
  year 2012
  mileage 50000
  description 'Badass used car'
  car_manufacturer
  end
end

FactoryGirl.define do
  factory :car_manufacturer do
  name 'Speed Racer Inc.'
  country 'Japan'
  end
end

我没有在我的协会认证中设置任何东西,因为据我所知,工厂的女孩是分开的,所以这应该是可行的。也许我的规范有问题:

代码语言:javascript
复制
scenario 'I want to associate a car with a car manufacturer' do
car_manufacturer = FactoryGirl.create(:car_manufacturer)
car = FactoryGirl.build(:car)
car_count = Car.count
visit new_car_path
fill_in 'Color', with: car.color
select car.year, from: 'Year'
fill_in 'Mileage', with: car.mileage
fill_in 'Description', with: car.description
select car_manufacturer.name, from: 'Owner'
click_on 'Create Car'
expect(page).to have_content('Car Submitted')
expect(Car.count).to eql(car_count + 1)
end

谢谢你的帮助。我只是不知道为什么会发生这种事,也不知道我该怎么做。

好吧,我想我找到了答案。在我的模型文件中没有关联之前。此后,我将它们加在下面:

代码语言:javascript
复制
require 'spec_helper'

describe Car do
  it { should validate_presence_of(:color) }
  it { should validate_presence_of(:year) }
  it { should validate_presence_of(:mileage) }
  it { should ensure_inclusion_of(:year).in_array(Car::YEARS) }
  it { should_not have_valid(:year).when('','nineteenninetynine',1979) }
  it { should_not have_valid(:mileage).when('3300 miles') }
  it { should belong_to(:car_manufacturer) }
end

require 'spec_helper'

describe CarManufacturer do
  it { should validate_presence_of(:name) }
  it { should validate_presence_of(:country) }
  it { should_not have_valid(:name).when('',nil) }
  it { should_not have_valid(:country).when('',nil) }
  it { should have_many(:cars) }
end

我的新问题是,“工厂女孩”是否依赖于模型的验证?我的印象是它没有。谁能澄清一下。我尝试了github文档,但我不记得它明确地这样说过。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-14 15:57:24

您能验证您已经迁移了测试数据库吗?通常,当访问器不能正常工作(在本例中是car_manufacturer=)时,它要么拼写错误,要么测试数据库没有正确迁移(因为AR会在表上转换)。

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

https://stackoverflow.com/questions/23064501

复制
相关文章

相似问题

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