从ID中删除并获取三个第一个数字

时间:2016-10-11 01:54:47

标签: ruby-on-rails ruby

我正在使用Ruby on Rails。我有一个模型的随机ID,我希望从ID获得前三个数字,并且#34;订购代码"将其保存到DB。

我的模型包括:id,first_name,last_name和order_code。

例如,ID为901233然后我想将901放入order_code。如何实现?

先谢谢你。

3 个答案:

答案 0 :(得分:0)

你可以用一种简单的方法来实现它

  1. 从字符串中取出前3个字符

    901233.to_s[0..2]
    #=> "901"
    
    901233.to_s.chars.first(3).join
    #=> "901"
    
  2. 修改

    来自@ 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