Мне никогда не удавалось найти хороший способ сделать это, поэтому я решил спросить.
Например, в модели ActiveRecord атрибуты, поддерживаемые базой данных, автоматически преобразуются по типу в соответствующие типы, поддерживаемые базой данных. Если у меня есть модель Category
, и у нее есть пара атрибутов, скажем name
и category_id
, если я пойду так:
Category.new(params[:category])
Rails знает, что name
является строкой, а category_id
является целым числом.
Допустим, у меня есть несколько переходных / синтетических атрибутов, которые я хочу проверить, и у них есть определенные типы. Я хочу отправить их из формы, и мне бы хотелось, чтобы они автоматически преобразовывались либо в строку, либо в целое число, либо в дату (например) в зависимости от того, как они определены.
Если бы я объявил что-то в модели Rails, например:
attr_accessor :some_number_variable
attr_accessor :some_date
Есть ли встроенный способ сообщить Rails: «Я бы хотел, чтобы вы приводили первое к целому числу, а второе к дате, когда я иду на Category.new(params[:category])
», пока params[:category][:some_number_variable]
и params[:category][:some_date]
являются частью данных, представляемых контроллеру (я понимаю, что пример Date может быть немного сложнее, учитывая множество форматов дат).