2012-04-29 26 views
1

我很新的Ruby和Rails,我想有一個數據庫,該數據庫是一個數字的屬性號在軌格式

- >數可以有10
的最大長度 - >的號碼分爲3部分,每部分用「 - 」分隔。
- >左起第一部分可以有2-7個數字,第二部分應該有兩個數字 ,第三部分應該只有一個數字。

例如 23-56-7
3454-54-3
3435464-54-3是有效號碼,
我該怎麼做呢?

回答

2

嗯,這取決於,它不是一個數字,如果它包含' - ',所以你可能想要將它作爲字符串存儲並在創建時進行驗證。

有兩種方法可以從數據庫或導軌中執行此操作。 我會建議從rails模型驗證它。 http://guides.rubyonrails.org/active_record_validations_callbacks.html

您可能想要使用正則表達式進行驗證。 http://www.rubular.com

如果要執行上的數字計算,你可以很容易地做這樣的事情

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

這將返回3個整數數組。

+0

非常感謝! :) – phntmasasin

2

首先,你需要設置一個字符串數據類型,您可以使用適當的正則表達式使用http://www.rubular.com/ 例如使驗證:23-56-7

validates_format_of  :number, :with => /^[1-9][1-9]-[1-9][1-9]-[1-9]$/ 
+0

您的正則表達式在某些規則上失敗。更好的是:'\ d {2,7} - \ d {2} - \ d' – shuriu