如何将number_field分成3部分?

时间:2013-04-18 11:16:14

标签: ruby-on-rails ruby view

在模型中,我有一个手机的整数字段。在视图中,此字段显示如下:

<%= f.number_field :phone %>

我正在尝试将这一个输入的电话号码显示为3个输入,我想在视图中向用户提供如下内容:

___ - ___ - ____

有什么方法可以做到吗?

2 个答案:

答案 0 :(得分:1)

jQuery Masked Input插件在一个输入字段中提供此功能:

  

它允许用户更容易地输入固定宽度输入,您希望他们以特定格式输入数据(日期,电话号码等)。

演示页面包含一个电话格式示例:(___) ___-____

答案 1 :(得分:0)

执行此操作的一种方法是在视图中创建3个字段,并让用户在3个单独的部分中输入数字。在视图中它看起来像这样

<p><%= f.number_field_tag "area_code" %> - 
<%= f.number_field_tag "phone1" %> - 
<%= f.number_field_tag "phone2" %> </p>

在控制器中,您可以将这3个字符串加入1个字符串中,以便能够根据您的模型设置保存它

def create_user
...
@user = User.new
@user.phone_number = params[:area_code].to_s + params[:phone1].to_s + params[:phone2].to_s
...
end

我还建议将电话号码保存为模型中的字符串,以避免错误存储以0开头的数字。