У меня есть такая миграция:
class AddScoreToContact < ActiveRecord::Migration[5.2]
def change
add_column :contacts, :score, :decimal, precision: 4, scale: 3, default: 0
end
end
Когда я пытаюсь проверить, как это:
contact = Contact.new(score: 0.5)
puts contact.score.class # **outputs String**
it 'is between 0 and 1' do
expect(contact.score).to be_between(0, 1)
end
Тест не пройден, если я не позвоню contact.score.to_f
Почему это строка?
Тестовый вывод:
Failure/Error: expect(contact.score).to be_between(0, 1)
expected "0.5" to be between 0 and 1 (inclusive)
EDIT
Проверка модели:
validates :score, presence: true
validates :score, numericality: { greater_than_or_equal_to: 0,
less_than_or_equal_to: 1 }