2017-02-05 9 views
0

'[email protected]'などの電子メールアドレスを検証する方法はありますか?Rails |特定の内線番号の電子メールアドレスを確認する

登録時に@mydomain.comの内線番号があるかどうか確認してください。正規表現コードはどのように見えるでしょうか?

これは私が現在使用しているものです、user.type = specialを追加したい検証は@mydomain.comuser.type = normal他の場合

VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i 
validates :email, presence: true, length: { maximum: 255 }, 
    format: { with: VALID_EMAIL_REGEX }, 
    uniqueness: { case_sensitive: false } 

答えて

1

に合格した場合しかし、上記のあなたは電子メール属性に

validates :email, format: { with: /@mydomain\.com\z/i } 

をモデルレベルの検証を追加することができます正規表現は電子メールの一部に制限をかけていません。@

編集:

あなたはそれがあなたと私のソリューションを組み合わせることが可能である@ mydomain.com

before_create :set_user_type 


def set_user_type 
    if /@mydomain\.com\z/i.match(email) 
     self.type = :special 
    else 
     self.type = :normal 
    end 
end 
+0

をチェックしないbefore_createアクションを追加する必要がありますか? –

+0

before_createを使用すると、すでに検証に合格していますか? –

+0

また、before_createの代わりにbefore_saveを使用することもできます。これはアップデートケースも処理するためです –

関連する問題