我在Rails中使用erb
模板,我想将整数分成两半,并在它们之间放置符号。
@user.number = 99999999999
我想这样显示:999999 - 99999
。如何在第六个字符后显示-
?
试试这个:
<% @number = @user.number.to_s %>
<%= @number[0..5] %> - <℅= @number[6..10] %>
我不太理解将-
符号精确地放在第六位数字之后的目的,但是如果您只是在寻找一些人类可读的大数表示,您可以使用Rails数字助手。这里有各种各样的方法,仅举几个:
number_to_human(1234567890123456)
# => "1.23 Quadrillion"
number_with_delimiter(12345678, delimiter: ",")
# => 12,345,678
您可以在模型中设置方法,也可以在帮助器中设置方法。
class User < ActiveRecord::Base
def number_to_ssn
number.to_s.scan(/{.1,6}/}.join(' - ')
end
end
module UsersHelper
def ssn_for(user)
user.number.to_s.scan(/{.1,6}/).join(' - ')
end
end
并在视图中调用它:
<%= @user.number_to_ssn %>
<%= ssn_for(@user) %>