我是Rails验证的总新手,虽然我看到一些相关问题,但我无法确定如何将它们扩展到我的情况。rails 3验证邮件地址的逗号分隔列表
我需要允许用户设置他们的帐户,以输入N(系统常量,如10)可选电子邮件地址。
,因此用户会输入到文本字段中的数据可能看起来像
[email protected]
或
[email protected], [email protected],[email protected] , [email protected]
(注意不一致的使用空间之前或逗号之后,典型的真实用户的东西)
目前在我的模型我处理单可选的电子邮件,并使用正则表达式:
validates :alert_email,
:allow_blank => true,
:length => {:minimum => 3, :maximum => 254},
:format => {:with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i}
有可能是某种超级正则表达式,我可以用...替换我的,如果任何人都可以帮忙的话,那将是很好的。然而,为了可读性(并且因为性能是无关紧要的,因为这是每个用户执行一次),我想我应该以某种方式将验证移动到一种方法,蛮力分析出来并一次运行正则表达式。
PS我还想要我的验证例程来“修正”空格/逗号的事情,所以它总是在列表中的项目之间的逗号空间,并且已将该固定版本保存起来。我猜我做了一些before_xxxxx方法?
像这样解析模型是引入错误的绝对方法。例如。当该字段已经是一个数组时,您的示例会中断。 – jdeseno 2011-06-12 04:47:20
我怀疑jdeseno的评论在技术上是正确的,但是,在我特别简单的应用程序和UI情况下,它看起来像这可能是一个相对新手如自己最简单和最简单的路线。 – jpwynn 2011-06-12 08:20:01
emails = self.emails.strip.downcase.split(/ [\ s,] + /)---#这对我来说更好 – Alex 2012-06-25 13:16:02