У меня есть ActiveRecord " Car " модель:
class Car < ActiveRecord::Base
def check_value
puts self.load_size #if user input is an alphabet letter, I got 0.0 here
end
...
end
Существует атрибут " load_size " в модели " Car ", а в базе данных столбец " load_size " равен double тип столбца.
Интересно, что в пользовательском интерфейсе, если пользователь вводит буквы алфавита (например, 'a') в поле ввода " load_size ", моя модель автоматически преобразует этот алфавит в значение 0.0
Другими словами, если мой CarsController.rb делает что-то вроде Car.new({:load_size=>params[:load_size]})
, а пользовательский ввод params[:load_size]
равен " a ", в модели я получил self.load_size
равно 0,0
В связи с вышеизложенным у меня есть следующие два вопроса:
Q1 . Это потому, что мой «load_size» в базе данных является «двойным» типом, поэтому в модель автомобиля , когда я получаю доступ к self.load_size
, рельсы автоматически преобразуют значение алфавита в 0,0 ?
Q2 . Поскольку я определил метод проверки в модели «Автомобиль», я хотел бы получить исходное значение пользовательского ввода (например, «a») без какого-либо преобразования. Как от этого избавиться? Как получить введенное пользователем значение, не преобразованное 0.0?