我已经更改了数据库中列的名称并相应地更改了spec/factories.rb
,但是当我运行rspec
测试时,它仍然在尝试使用旧的列名。我重新启动了Ruby on Rails服务器,但这并没有解决它。
# Changed :height to :height_feet
# Added :height_inches
FactoryGirl.define do
factory :user do
...
height 180
end
end
# Changed to:
FactoryGirl.define do
factory :user do
...
height_feet 5
height_inches 11
end
end
然而,当我在rspec spec/models
运行以下行时:
let(:user) { FactoryGirl.create(:user) }
产生以下错误:
Failure/Error: let(:user) { FactoryGirl.create(:user) }
NoMethodError:
undefined method `height' for #<User:0x0000000532fc08>
关于我如何解决这个问题的任何想法?
答案 0 :(得分:1)
这是你需要重启的spork服务器。我不使用后卫,所以我不完全确定如何,但看看这个问题,还有其他一些有用的信息:
答案 1 :(得分:1)
我通过从FactoryGirl 1.4.0升级到FactoryGirl 2.0.0解决了这个问题。从故障排除链接:
https://github.com/sporkrb/spork/wiki/Spork.trap_method-Jujitsu
Factory Girl 2没有以前版本的自动加载问题,因此您无需执行任何操作即可使Spork正常工作。