ПЕРЕСМОТРЕНО: ошибка была в том, что я хранил несколько разных моделей в одном хеше.Это был внутренний способ того, как я строил массив.В любом случае, я прошу прощения за ошибку здесь.Никто не мог ответить на вопрос так, как я его задал.
Так что у меня есть блок RSpec before (: each) в спецификации контроллера.В моем примере модели есть поле состояния и следующая проверка:
class Model < ActiveRecord::Base
STATI = [ "vacant", "deleted", "deactivated"]
...
validates :status, :inclusion => { :in => STATI }
...
end
И в моей спецификации у меня есть следующий код:
describe Controller do
...
describe "some methods" do
before(:all) do
@models = []
10.times { @models << Factory(:model) }
end
before(:each) do
@models.each { |m| m.update_attributes(:status => "vacant") }
end
...
end
end
Когда я запускаю спецификацию, все остальныеописать блоки работают нормально.Вызывает ошибку с эффектом: ActiveRecord :: RecordInvalid: Проверка не удалась: Статус не включен в список и указывает на строку, где написано m.update_attributes (: status => "vacant").
Спасибо за любую помощь.