Я получаю очень странную ошибку при запуске spec:
Failure/Error: entity = Factory.create(:entity, :name => "Test Entity", :creator => user)
ActiveRecord::AssociationTypeMismatch:
::User(#97318850) expected, got User(#92770800)
Это код, который приводит к вышеуказанной ошибке. Factory - factory_girl factory.
user = Factory(:user, :username => "kai", :email => "[email protected]", :password => "testing")
entity = Factory.create(:entity, :name => "Test Entity", :creator => user)
Когда я использую :creator => User.first
, тогда все работает так, как ожидалось. Я распечатал User.first
и user
, но не вижу разницы.
Какие-нибудь предложения о том, что здесь не так?
Update
Я также получил эту ошибку при запуске этой простой спецификации запроса
describe "Entities" do
it "should succeed" do
entity = Factory.create(:entity, :name => "Test Entity 1")
visit root_path
end
it "should also succeed" do
entity = Factory.create(:entity, :name => "Test Entity 2")
property = Factory.create(:property, :entity => entity)
end
end
На этот раз я получаю
Failure/Error: property = Factory.create(:property, :entity => entity)
ActiveRecord::AssociationTypeMismatch:
Entity(#103620190) expected, got Entity(#96047070)
когда я удаляю visit root_path
, все работает отлично (также при каждом запуске каждой спецификации). Это просто проблема для спецификации запроса. Другие спецификации (модель, контроллер), похоже, работают нормально. Я использую Capybara 1.0.0.beta1 и RSpec 2.5.
Что означает это число за именем класса?