В большинстве уроков Rails показано, как заполнить класс модели с помощью хэша params следующим образом:
class UsersController < ApplicationController
def create
@user = User.create(params[:user])
# more logic for saving user / redirecting / etc.
end
end
Это прекрасно работает, если все атрибуты в вашей модели должны быть строками.Тем не менее, что произойдет, если некоторые атрибуты должны быть целыми числами или датами или каким-то другим типом?
Например, предположим, что класс User выглядит следующим образом
class User < ActiveRecord::Base
attr_accessible :email, :employment_start_date, :gross_monthly_income
end
: emailатрибут должен быть строкой, атрибут :loyment_start_date должен быть датой, а: gross_monthly_income должен быть десятичным.Чтобы эти атрибуты имели правильный тип, нужно ли мне вместо этого изменить действие контроллера, чтобы оно выглядело примерно так?
class UsersController < ApplicationController
def create
@user = User.new
@user.email = params[:user][:email]
@user.employment_start_date = params[:user][:employment_start_date].convert_to_date
@user.gross_monthly_income = params[:user][:gross_monthly_income].convert_to_decimal
# more logic for saving user / redirecting / etc.
end
end