用于从表字段中查找电子邮件的名称范围

时间:2013-01-18 02:12:26

标签: ruby-on-rails model named-scope

在用户表中,我有一个名称字段,其中一些记录是名称,一些是电子邮件。我知道,糟糕的做法。除此之外。我想编写一个只返回电子邮件记录的命名范围。

我已尝试调整执行此查询的查询,但失败了。

MYSQL:

SELECT NAME
FROM USER
WHERE NAME LIKE '%@%.%'

用户模型:

scope :user_email, :conditions => ["name like '%@%.%'"]

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

试试这个:

scope :user_email, :conditions => ["name LIKE ?", '%@%.%']

您应该以这种格式提供字符串条件,以避免可能的SQL注入问题。

答案 1 :(得分:0)

试试这个:

 named_scope :user_email, :conditions => ["name REGEXP ?", /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i]