0

这是一个很少运行的查询(作为管理员),不值得用 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')。您如何编写此代码以仅选择具有与正则表达式匹配的变量的那些用户进行连接?

4

1 回答 1

-1

(我从这里得到灵感):

您是否尝试过类似的方法:

profiles = Profile.joins(:user).where("first_name LIKE ? AND last_name LIKE ?", "%#{fn}%", "%#{ln}%")
profiles.select{|p| p.user.email =~ /#{em}/}
于 2013-10-07T21:31:37.147 回答