你如何在 Rails 3 中使用 number_to_phone?

Posted

技术标签:

【中文标题】你如何在 Rails 3 中使用 number_to_phone?【英文标题】:How do you use number_to_phone in Rails 3? 【发布时间】:2011-07-17 19:45:02 【问题描述】:

我在数据库中将电话号码存储为“1234567890”。

如何使用 number_to_phone 以“(123) 456-7890”的形式很好地显示号码?

我尝试了以下方法,但它只显示了数字。

<%= f.text_field number_to_phone(:phone_number) %>

谢谢。

【问题讨论】:

如果你在表单中使用助手,它会弄乱数据 只需按原样保存数字并使用助手对其进行格式化..就像下面的答案 【参考方案1】:

您可以在应用程序助手中创建一个像这样的简单助手

  def format_phone(phone, mobile=false)
    return phone if format.blank?
    groupings = format.scan(/d+/).map  |g| g.length 
    groupings = [3, 3, 4] unless groupings.length == 3
    ActionController::Base.helpers.number_to_phone(
      phone,
      :area_code => format.index('(') ? true : false,
      :groupings => groupings,
      :delimiter => format.reverse.match(/[^d]/).to_s
    )
  end

然后在你看来做

<%= format_phone(phone_number)%>

【讨论】:

以上是关于你如何在 Rails 3 中使用 number_to_phone?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Rails 3.2.1 中使用控制器特定的样式表?

Rails 3 路由如何匹配多个?

如何在 Rails 6.0.3.3 中使用 jQuery?

你应该如何在 Rails 中回填新表?

如何在 Rails 3 的 Postgres 数据库中使用枚举? [关闭]

如何在 Rails 3 中使用多线程?