使用电话号码搜索但在Rails中的最后4位数

时间:2014-06-25 04:01:49

标签: ruby-on-rails ruby-on-rails-3

这是我的方法

def phone_number_last_4
   phone_number = self.work_phone
   phone_number[phone_number.length - 4 ,4]
end

我的字段名称为 work_phone

例如:我的work_phone是:1234567890 - 所以我的phone_number_last_4是7890

我希望客户使用phone_number_last_4数字,但不是字段,所以如何搜索有phone_number包括7890。

我的表名是:客户

so - Customer.where(“work_phone =?”,1234567890) - 这个有效但

Customer.where(“phone_number_last_4 =?”,1234567890)无效

请帮帮我

2 个答案:

答案 0 :(得分:4)

Customer.where("work_phone ~ '7890$'")

这假设你正在使用Postgresql。

答案 1 :(得分:1)

与问题分开,你可以phone_number[-4, -1]来获取ruby中字符串的最后四个字符。

假设您正在使用mysql,您可以根据work_phone字段的最后四位数执行类似的子字符串查询: Customer.where("SUBSTRING(work_phone, -4) = ?", '7890')