Rails在regex上查询连接

时间:2013-10-07 21:20:46

标签: sql ruby-on-rails ruby regex join

这是一个非常不常见的查询(作为管理员),并且不值得使用sphinx索引/使用RAM。

所以,变量设置如下: fn,ln,em ='John','Smith','johnsmith @ gmail.com'

查询是这样的:

profiles = Profile.joins(:user).where(:users=>{"email" => em}).
  where("first_name LIKE '%#{fn}%' AND last_name LIKE '%#{ln}%'")         

除了我希望电子邮件接受子字符串(例如,如果em =='th @gm',那么它应匹配'johnsmith@gmail.com')。你如何编写这个来进行连接只选择那些匹配正则表达式的变量的用户?

1 个答案:

答案 0 :(得分:0)

(我的灵感来自here):

你有没有试过像:

profiles = Profile.joins(:user).where("first_name LIKE ? AND last_name LIKE ?", "%#{fn}%", "%#{ln}%")
profiles.select{|p| p.user.email =~ /#{em}/}