Для проверки на стороне клиента вы можете использовать плагин jQuery, например этот, который позволяет вам определять разные допустимые форматы для заданного ввода.
Для проверки на стороне сервера и в соответствии с этим вопросом/ответом, возможно, вы должны использовать столбец decimal для price, в котором вы можете определить значения для precision и scale, scale решает две цифры после ограничения десятичной точки.
Затем, чтобы проверить численное, минимальное и максимальное значение, вы можете использовать следующий метод проверки:
Вы можете создавать пользовательские проверки. Предположим, например, второй случай:
validate :price_has_to_be_greater_than_minimum
def price_has_to_be_greater_than_minimum
errors.add(:price, "price has to be greater than 0.01") if
!price.blank? and price > 0.01
end