Ошибка в Factory_girl: NoMethodError: неопределенный метод - rspec и rails 3.1.0

У меня проблема с factory_girl. Вот ошибка с rspec.

"Ошибка/ошибка: клиент = Factory(:customer, :name => nil) NoMethodError: неопределенный метод `category1_id=' для #Customer:0x4175418"

Вот код rspec:

describe "data integrity" do
  it "should return error with no name" do
    customer = Factory(:customer, :name => nil)
    customer.errors[:name].should_not be_empty
    customer.should_not be_valid
  end
  it "should take a good name" do
    customer = Factory(:customer, :name => "good customer name")
    customer.errors[:name].should be_empty
  end
end

category1_id — это столбец в таблице клиентов. Вот заказчик.рб

class Customer < ActiveRecord::Base
  validates :name, :presence => true
end

Определение Factory(:customer)

Factory.define :customer do |c|
  c.name "test customer"
  c.email "[email protected]"
  c.phone "12345678"
  c.cell "1234567890"
  c.active 1
  c.category1_id 2
  c.short_name "test" 
end

Есть предположения? Благодарю.


person user938363    schedule 10.09.2011    source источник
comment
проверьте, существует ли столбец category1_id в вашей таблице customer   -  person NARKOZ    schedule 12.09.2011


Ответы (1)


Проблема исчезла после того, как зависимость от factory_girl_rails (от factory_girl) была удалена, а Factory() была заменена на Factory.build().

Каким-то образом factory_girl стала зависимой от factory_girl_rails в моей системе (до сих пор не знаю почему). При установленной factory_girl проверка драгоценных камней требует установки factory_girl_rails. Однако, когда были установлены и factory_girl, и factory_girl_rails, они вызвали конфликт с повторяющейся ошибкой. После нескольких часов неудачных попыток конфликтная зависимость таинственным образом исчезла после перезагрузки и перезагрузки системы.

person user938363    schedule 12.09.2011
comment
У меня та же проблема, тоже с атрибутом с суффиксом _id. В крайнем случае, я попытался перезагрузиться, как вы сказали, и это не очень помогло. Самое смешное, что он хорошо создает фабрику в консоли рельсов, но не в спецификации. - person Nuno Costa; 14.10.2014