0

ユーザーテーブルには名前フィールドがあり、一部のレコードは名前であり、一部は電子メールです。私は知っている、悪いアプローチ。それはさておき。メールレコードのみを返す名前付きスコープを作成したいと思います。

このクエリを実行するクエリを適応させようとしましたが、失敗しました。

MYSQL:

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

ユーザーモデル:

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

どんな助けでもいただければ幸いです。

4

2 に答える 2

1

これを試して:

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

SQLインジェクションの問題を回避するために、この形式で文字列条件を指定する必要があります。

于 2013-01-18T02:30:16.293 に答える
0

これを試して:

 named_scope :user_email, :conditions => ["name REGEXP ?", /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i]
于 2013-01-18T02:40:03.980 に答える