Rails 3,如何验证电子邮件域名

时间:2012-01-09 06:22:43

标签: ruby-on-rails ruby-on-rails-3 validation

域名是静态的,因此它始终是相同的。它不像一个神奇的数字,所以我需要正确的正则表达式或使用rails中的东西,可以验证domain =“domain.com”或我放在那里的任何东西......

我一直在玩:

 validates_each :email |record, attr, value|
      record.errors.add attr 'bad domain' unless /ravennainteractive.com$/ =~ value
  end

不起作用......

非常感谢你的帮助。

编辑1/9/12

所以在仔细观察导轨指南之后,我修改了Vivek所说的内容,这就是我正在使用的内容:

validates_each :email do |record, attr, value|
       record.errors.add(attr, 'You must use an ravennainteractive.com email address') unless value =~ /ravennainteractive.com$/
   end

这是接受无效值:(来自日志)“approvals_attributes”=> {“0”=> {“email”=>“tj@4thavenuemedia.com”}}},“commit”=&gt ; “保存”}

我还应该注意,这是在嵌套表单上验证的。这是一个带有fields_for ...

的推荐#新表单

还有其他想法吗?

1 个答案:

答案 0 :(得分:1)

我不确定这会有什么帮助,但是值不应该与表达式匹配吗?

不应该是unless value =~ /ravennainteractive.com$/吗?