我对 ruby 和 rails 很陌生,我想在数据库中有一个属性,它是一个数字
-> 数字的最大长度为 10。
-> 数字分为 3 部分,每部分用“-”分隔。
-> 左起第一部分可以有 2-7 位,第二部分应该有 2 位,第三部分应该有 1 位。
例如 23-56-7
3454-54-3
3435464-54-3 是有效数字,
我该怎么做?
我对 ruby 和 rails 很陌生,我想在数据库中有一个属性,它是一个数字
-> 数字的最大长度为 10。
-> 数字分为 3 部分,每部分用“-”分隔。
-> 左起第一部分可以有 2-7 位,第二部分应该有 2 位,第三部分应该有 1 位。
例如 23-56-7
3454-54-3
3435464-54-3 是有效数字,
我该怎么做?
好吧,这取决于,如果它包含'-',它就不是一个数字,因此您可能希望将其存储为字符串并在创建时对其进行验证。
有两种方法可以做到这一点,从数据库或从 rails。我建议从 rails model 验证它。 http://guides.rubyonrails.org/active_record_validations_callbacks.html
您可能希望使用正则表达式进行验证。 http://www.rubular.com
如果你想对数字进行计算,你可以很容易地做这样的事情
yournumber.split('-').map { |x| x.to_i }
这将返回一个包含 3 个整数的数组。
首先,您需要设置一个字符串数据类型,您可以使用http://www.rubular.com/使用适当的正则表达式进行验证 ,例如:23-56-7
validates_format_of :number, :with => /^[1-9][1-9]-[1-9][1-9]-[1-9]$/