有没有办法在Rails中基于域验证注册时的电子邮件



示例:

接受的扩展名:"@blogsllc.org">

用户使用电子邮件注册"joe@blogsllc.org"将能够创建一个帐户。

想知道在Rails中实现这一点的最佳方式是什么,以及其他人将如何处理?我想象着尝试对照一堆正则表达式检查电子邮件地址的格式,但随着支持的扩展列表的增加,这可能会很乏味。

另一种方法是建立一个受支持的扩展的数据库,并根据数据库检查创建的电子邮件地址,看看扩展是否被接受,但我不确定在Rails中实现这一点的最佳方法是什么。

我希望实现一些类似于Facebook早期所做的事情。

感谢您的帮助。

编辑误解:

如果你不需要比直接匹配域(文件有扩展名,电子邮件有域(更花哨的东西,那么在@上拆分并将第二部分与数据库列匹配是最简单的方法。

您可以添加以下代码

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

此链接将非常有用

相关内容

  • 没有找到相关文章