我有一个允许用户向电子邮件发送消息的表单,我想为其添加验证.我没有这个模型,只有一个控制器.我应该如何在Rails中执行此操作?
我正在考虑在控制器中进行验证,并使用flash对象向用户显示错误.有没有更好的方法呢?
最好的方法是在类中包装伪模型,并在那里添加验证.Rails方式声明你不应该在控制器上放置模型行为,唯一的验证应该是那些与请求本身一致的(验证,授权等)
在Rails 2.3+中,您可以包含ActiveRecord::Validations,但您必须定义ActiveRecord层期望的某些方法.有关更深入的解释,请参阅此帖子.以下代码改编自该帖子:
require 'active_record/validations'
class Email
attr_accessor :name, :email
attr_accessor :errors
def initialize(*args)
# Create an Errors object, which is required by validations and to use some view methods.
@errors = ActiveRecord::Errors.new(self)
end
# Required method stubs
def save
end
def save!
end
def new_record?
false
end
def update_attribute
end
# Mix in that validation goodness!
include ActiveRecord::Validations
# Validations! =)
validates_presence_of :name
validates_format_of :email, :with => SOME_EMAIL_REGEXP
end
Run Code Online (Sandbox Code Playgroud)
在Rails3中,您可以使用这些性感验证 :)
| 归档时间: |
|
| 查看次数: |
4918 次 |
| 最近记录: |