1

我对 ruby​​ 和 rails 很陌生,我想在数据库中有一个属性,它是一个数字

-> 数字的最大长度为 10。
-> 数字分为 3 部分,每部分用“-”分隔。
-> 左起第一部分可以有 2-7 位,第二部分应该有 2 位,第三部分应该有 1 位。

例如 23-56-7
3454-54-3
3435464-54-3 是有效数字,
我该怎么做?

4

2 回答 2

2

好吧,这取决于,如果它包含'-',它就不是一个数字,因此您可能希望将其存储为字符串并在创建时对其进行验证。

有两种方法可以做到这一点,从数据库或从 rails。我建议从 rails model 验证它。 http://guides.rubyonrails.org/active_record_validations_callbacks.html

您可能希望使用正则表达式进行验证。 http://www.rubular.com

如果你想对数字进行计算,你可以很容易地做这样的事情

yournumber.split('-').map { |x| x.to_i }

这将返回一个包含 3 个整数的数组。

于 2012-04-29T18:53:29.513 回答
2

首先,您需要设置一个字符串数据类型,您可以使用http://www.rubular.com/使用适当的正则表达式进行验证 ,例如:23-56-7

validates_format_of     :number, :with => /^[1-9][1-9]-[1-9][1-9]-[1-9]$/
于 2012-04-29T19:06:31.860 回答