我从来没有找到一个很好的方法来做到这一点,所以我想我会问。
例如,在 ActiveRecord 模型中,数据库支持的属性会自动类型转换为适当的数据库支持类型。如果我有一个Category
模型,并且它有几个属性,比如说name
and 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]
是提交给控制器的数据的一部分(我意识到鉴于那里有许多日期格式,日期示例可能有点棘手)。