2013-01-18 89 views
0

在用戶表中,我有一個名稱字段,其中一些記錄是名稱,一些是電子郵件。我知道,糟糕的做法。那邊。我想編寫一個僅返回電子郵件記錄的命名範圍。從表格字段查找電子郵件的名稱範圍

我試着適應的查詢,這是否查詢,但失敗了。

MYSQL:

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

用戶模式:

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

任何幫助,將不勝感激。

回答

1

試試這個:

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

你應該提供條件的字符串以這種格式,以避免可能的SQL注入的問題。

+0

正是我想要的。太感謝了! – jahrichie

0

試試這個:

named_scope :user_email, :conditions => ["name REGEXP ?", /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i] 
相關問題