У меня есть тестовая таблица Oracle со столбцом идентификатора, который не является первичным ключом, не автоинкрементом и с никакой определенной последовательностью. Определено только NOT NULL
. Соответствующая структура в схеме разработки — это Oracle View, а не таблица с первичным ключом, определенным для столбца ID.
Мое заводское определение выглядит так:
FactoryGirl.define do
factory :model do
id 'abc'
end
end
Эти тесты не проходят
test "should build model 1" do
w = FactoryGirl.build(:model)
assert_not_nil w.id #fails - id is always nil
end
test "should build model 2" do
w = FactoryGirl.build(:model, :id => 'abc')
assert_not_nil w.id #fails - id is always nil
end
Я добавил attr_accessible :id
в свою модель (на всякий случай), но безуспешно.
Я также определил метод id=
в своей модели def id= id; @id = id; end
. Выполняется вызов метода и записывается @id, но похоже, что он перезаписывается позже в стеке вызовов (между FactoryGirl и ActiveRecord).
Обычно присваиваются другие атрибуты.