我对ruby和rails非常陌生,我想在数据库中有一个属性,它是一个数字。
->The编号的最大长度可以为10。
->The编号分为3个部分,每个部分用"-“分隔。
->The左起第一部分可以有2-7个数字,第二个部分应该恰好有2个数字,第三个部分应该恰好有1个数字。
例如23-56-7
3454-54-3
3435464-54-3是有效数字,
我该怎么做呢?
发布于 2012-04-30 02:53:30
这取决于,如果它包含'-‘,那么它不是一个数字,所以你可能想要将它存储为一个字符串,并在创建时验证它。
有两种方法可以做到这一点,从数据库或从rails。我建议从rails模型中验证它。http://guides.rubyonrails.org/active_record_validations_callbacks.html
您可能希望使用正则表达式进行验证。http://www.rubular.com
如果你想对这些数字进行计算,你可以很容易地这样做
yournumber.split('-').map { |x| x.to_i }
这将返回一个包含3个整数的数组。
发布于 2012-04-30 03:06:32
首先,您需要设置字符串数据类型,并且可以使用适当的正则表达式使用http://www.rubular.com/进行验证,例如: 23-56-7
validates_format_of :number, :with => /^[1-9][1-9]-[1-9][1-9]-[1-9]$/
https://stackoverflow.com/questions/10374891
复制相似问题