小编hum*_*ing的帖子

在Rails中,有没有办法指定你想要attr_accessor的TYPE,并使用内置的Rails验证来验证它?

我从来没有找到一个很好的方法来做到这一点,所以我想我会问.

例如,在ActiveRecord模型中,数据库支持的属性会自动进行类型转换为适当的数据库支持类型.如果我有一个Category模型,它有几个属性的,说namecategory_id,如果我是这样的:

Category.new(params[:category])
Run Code Online (Sandbox Code Playgroud)

Rails知道这name是一个String并且category_id是一个Integer.

假设我有几个我要验证的瞬态/合成属性,并且它们具有特定类型.我想从表单中提交它们,我希望它们根据它们的定义自动转换为String或Integer或Date(例如).

如果我要在Rails模型中声明一些内容,例如:

attr_accessor :some_number_variable
attr_accessor :some_date
Run Code Online (Sandbox Code Playgroud)

是否有一个内置的方式来告诉Rails"我想你前强制转换为整数,而后者的日期,当我走Category.new(params[:category])",只要params[:category][:some_number_variable]params[:category][:some_date]提交给控制器的数据的一部分(我知道考虑到许多日期格式,Date示例可能有点棘手).

validation ruby-on-rails transient attr-accessor

6
推荐指数
2
解决办法
3622
查看次数