0

例:

受け入れられる拡張子: "@blogsllc.org"

ユーザーは、メール「joe@blogsllc.org」でサインアップすると、アカウントを作成できます。

Rails でこれを行う最善の方法は何か、他の人はこれにどのようにアプローチするのか疑問に思っていますか? 電子メール アドレスの形式を一連の正規表現と照合してチェックすることを想像しましたが、サポートされている拡張機能のリストが増えるにつれて、これは面倒な作業になる可能性があります。

これを行うもう1つの方法は、サポートされている拡張機能のデータベースを用意し、作成された電子メールアドレスをデータベースに対してチェックして、拡張機能が受け入れられているかどうかを確認することですが、これをRailsに実装する最良の方法はわかりません.

Facebookが初期に行ったことに似たものを実装しようとしています。

どんな助けでも感謝します。

4

2 に答える 2

2

誤解のための編集:

ドメインの単純な一致 (ファイルには拡張子があり、電子メールにはドメインがあります) 以外に手の込んだものが必要ない場合は、分割し@て 2 番目の部分をデータベース列と一致させることが最も簡単な方法です。

于 2013-01-10T09:10:48.857 に答える
0

次のコードを追加できます

class EmailValidator < ActiveModel::EachValidator
 def validate_each(record, attribute, value)
  unless value =~ /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i
   record.errors[attribute] << (options[:message] || "is not an email")
  end
 end
end

class Person < ActiveRecord::Base
 validates :email, :presence => true, :email => true
end

このリンクは役に立ちます

于 2013-01-10T09:16:42.480 に答える