【发布时间】:2014-07-04 12:45:27
【问题描述】:
我有一个 Rails 3.2.18 应用程序,我在其中对模型执行简单的创建/更新操作。
有一个叫做sms的字段,我使用ActionMailer以2812222222@vtext.com的形式向某人的手机发送消息。目前我手动输入这个很好,但我希望其他人能够输入电话号码,选择运营商并将这两个项目合并为短信字段中的正确格式,再次为 2812222222@vtext.com。比起必须记住完整的 sms-to-email 地址,它更便于用户使用。
我认为我可以通过 JS/JQuery 完成大部分工作,但我不确定如何开始。
我希望他们能够以 281-555-4444 格式输入电话号码,并让运营商选择 Tmobile、Verizon 等下拉列表并替换 @tmomail.net、@vtext。 com等,剥离(正则表达式)电话号码并将其与运营商(@vtext.com)合并到短信字段中。
如果有人能直接指出我的正确方向,将不胜感激。
更新:
我想我可以使用辅助方法来定义载体:
def phone_carriers
{
"All Tell" => "@message.alltel.com",
"AT&T" => "@txt.att.net",
"Boost" => "@myboostmobile.com",
"Cellular South" => "@csouth1.com",
"Centennial Wireless" => "@cwemail.com",
"Cincinnati Bell" => "@gocbw.com",
"Cricket Wireless" => "@sms.mycricket.com",
"Metro PCS" => "@mymetropcs.com",
"Powertel" => "@ptel.net",
"Qwest" => "@qwestmp.com",
"Rogers" => "@pcs.rogers.com",
"Sprint" => "@messaging.sprintpcs.com",
"Suncom" => "@tms.suncom.com",
"T-Mobile" => "@tmomail.net",
"Telus" => "@msg.telus.com",
"U.S. Cellular" => "@email.uscc.net",
"Verizon" => "@vtext.com",
"Virgin Mobile USA" => "@vmobl.com"
}
结束
将 attr_accessor :carrier 添加到 Person 模型
然后在表单中执行如下操作:
<%= f.input :phone, placeholder: "555-555-5555", required: true, input_html: {required: true} %>
<%= f.select :carrier, phone_carriers.map{ |k, v| [k, v] }, {include_blank: true}, {placeholder: "Select your phone carrier", class: "select2"} %>
但我仍然无法弄清楚如何将电话号码剥离为 5555555555 并将 :phone 字段与 :carrier 对象自动合并到 :sms 字段中(最好是客户端)
【问题讨论】:
标签: javascript jquery ruby-on-rails-3 forms rails-activerecord