Использование Rails 3.1.1. Чтобы воспроизвести это, создайте новый проект Rails. Создайте новую модель в рамках этого проекта под названием «Пример». Создание миграции для этой модели, которая выглядит следующим образом ...Почему проверка правильности включения Rails не выполняется?
class CreateExamples < ActiveRecord::Migration
def change
create_table :examples do |t|
t.integer :status, :null => false
t.timestamps
end
end
end
Есть код посмотреть пример модель следующим образом ...
class Example < ActiveRecord::Base
VALID_VALUES = [0, 1, 2, 3]
validates :status, :presence => true, :inclusion => {:in => VALID_VALUES}
end
Теперь редактируют модульный тест для этой модели и добавьте следующее код к нему ...
require 'test_helper'
class ExampleTest < ActiveSupport::TestCase
test "whats going on here" do
example = Example.new(:status => "string")
assert !example.save
end
end
Редактировать светильники файл так, что он не создает какие-либо записей, а затем запустить тест блока с помощью команды, например, как расслоение теста Exec грабель: единиц. Этот тест должен пройти, поскольку «строка» не является допустимым статусом, поэтому объект example должен возвращать false из вызова для сохранения. Этого не происходит. Если вы выберете 0 из массива VALID_VALUES, это сработает. Кто-нибудь знает, почему это может быть так?
Вы уверены, что не хотите перечисления? – Reactormonk