Lis*_*nge 5 ruby forms ruby-on-rails range
我有一个表单,我的用户可以在我的网站上注册.
他们以生日,出生月和生日的形式填写他们的出生日期.
所以我使用Range在这样的表单中创建选择:
= f.select(:birthmonth, options_for_select((1..12)))
Run Code Online (Sandbox Code Playgroud)
但是这并没有像我想要的那样以零开始单位数字:01,02,03,04,05,06,07,08,09,10等等.
我甚至试过这个,但它不起作用:
= f.select(:birthmonth, options_for_select((01..12)))
Run Code Online (Sandbox Code Playgroud)
任何知道如何让Range开始使用前导零的人?或者任何其他方式这样做,以便我可以在验证中使用它?:
validates_inclusion_of :birthmonth, :in => 1..12
Run Code Online (Sandbox Code Playgroud)
Chu*_*uck 16
麻烦的是数字本身没有前导零(或者,有或者有无数个从未打印过的前导零).要获得前导零,您需要字符串.幸运的是,Ruby内置了这种字符串格式化功能.
= f.select(:birthmonth, options_for_select((1..12).map {|n| "%02d" % n}))
Run Code Online (Sandbox Code Playgroud)
这%02d
是一个格式化说明符,意思是"如果它小于两位数,则用前导零填充它".
要进行验证,您需要进行相同的转换:
validates_inclusion_of :birthmonth, :in => (1..12).map {|n| "%02d" % n}
Run Code Online (Sandbox Code Playgroud)
(感谢@ r-dub指出那个位.)
归档时间: |
|
查看次数: |
3853 次 |
最近记录: |