che*_*ell 15 ruby ruby-on-rails
这是一个真正的超新手问题.
我有一个存储在数据库中的年龄.
当我从数据库中获得年龄时,我想获得每个数字.
例:
User.age = 25
Run Code Online (Sandbox Code Playgroud)
我想得到以下内容:
first = 5
second = 2
Run Code Online (Sandbox Code Playgroud)
我似乎无法从数据中将其作为修复数量来解决这个问题.
任何人都知道干净简单的解决方案.
mik*_*kej 19
您可以转换为字符串然后拆分成数字,例如
first, second = User.age.to_s.split('')
=> ["2", "5"]
Run Code Online (Sandbox Code Playgroud)
如果您需要将个别数字作为Fixnums返回,您可以将它们映射回来,例如
first, second = User.age.to_s.split('').map { |digit| digit.to_i }
=> [2, 5]
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用整数除法,例如
first, second = User.age.div(10), User.age % 10
=> [2, 5]
Run Code Online (Sandbox Code Playgroud)
请注意,上面的示例使用的是并行分配,如果您是Ruby新手,可能还没有遇到过.
Ruby 2.4具有Integer#digits方法。例如:
25.digits
# => [5, 2]
Run Code Online (Sandbox Code Playgroud)
所以你可以做
first, second = user.age.digits
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18057 次 |
最近记录: |