我正在使用Ruby on Rails。我有一个模型的随机ID,我希望从ID获得前三个数字,并且#34;订购代码"将其保存到DB。
我的模型包括:id,first_name,last_name和order_code。
例如,ID为901233然后我想将901放入order_code。如何实现?
先谢谢你。
答案 0 :(得分:0)
你可以用一种简单的方法来实现它
从字符串中取出前3个字符
901233.to_s[0..2]
#=> "901"
901233.to_s.chars.first(3).join
#=> "901"
修改强>
来自@ cary的评论
901233.to_s.each_char.first(3).join
避免创建临时数组
答案 1 :(得分:-1)
如果你的id是变量,你可以截断它:
In [101]: id = "901233"
In [102]: id[0:3]
Out[102]: '901'
如果是数字,您可以将其转换并执行相同操作:
In [105]: str(id)[0:3]
Out[105]: '901'
所以你可以这么做:
order_code = str(id)[0:3]
答案 2 :(得分:-1)
在你的model.rb
中before_create do
self.order_code = id.to_s[0..2]
end