这一切都很新鲜。我有一个简单的表单供用户输入几条信息,然后输入他们的电子邮件地址并按下提交按钮。我想强制要求他们必须填写他们的电子邮件地址才能按下提交按钮。如果他们没有填写他们的电子邮件地址,他们应该在电子邮箱上收到一条错误消息,说明电子邮件不能为空。我知道这是非常简单但我需要确切的帮助,在哪里放什么代码。我整晚都在研究这个问题并且知道代码的一部分应该放在application_controller中,其他的应该放在实际的text_field:email所在的html文件中。 如果有人能清楚地告诉我这样做的必要步骤,我将不胜感激。谢谢!
答案 0 :(得分:3)
它应该放在你的模型中。加上这个:
class Model < ActiveRecord::Base
validates_presence_of :email
end
点击此链接了解详情:http://guides.rails.info/activerecord_validations_callbacks.html#validates-presence-of
答案 1 :(得分:3)
在我假设您正在使用的Rails 2中,验证会进入模型。它位于$ Rails_app_directory / app / model / $ Classname.rb
中要添加ActiveRecord验证,您可以使用
行validates_presence_of :email_address
您还应该考虑使用Rails生成确认字段并过滤掉格式不正确的电子邮件地址。你可以通过以下方式完成前者:
validates_confirmation_of :email_address
有了这个,您需要添加到表单的所有内容都是text_field:email_address_confirmation
和后者的正则表达式如:
validates_format_of :email_address, :with => /\A[\w\.%\+\-]+@(?:[A-Z0-9\-]+\.)+(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|jobs|museum)\z/i
答案 2 :(得分:0)
从snipplr,放入你的模特
validates_format_of :email,
:with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i,
:message => 'email must be valid'