我正在设计REST API,并希望验证请求参数的存在,长度等。
例如,我想验证以下内容:
然后检查这样的参数:
request.valid?
我正在考虑使用DataMapper(或Virtus + Aequitas)或类似的东西。但DataMapper或其他ORM只提供了我不需要的功能。
您如何处理此问题以及是否使用可以推荐的ORM(基于依赖项数量和所需的“验证代码”)?
答案 0 :(得分:1)
已使用已为name
,age
的rails验证提供。 ref this
validates :name, presence: true, :length => { :maximum => 200 }
validates :age, allow_blank: true, :numericality => {:greater_than => 18, :less_than => 100}
使用以下
进行自定义验证validate :some_validation_method
def some_validation_method
end
答案 1 :(得分:1)
您可以使用ActiveModel::Validations。
它允许大量验证,例如接受,关联,确认,排除,格式等。例如:
class Person
include ActiveModel::Validations
validates :name, :surname, presence: true
validates :city, length: { minimum: 5 }
validates :age, numericality: { greater_than: 18 }
end
# Example:
p = Person.new
p.valid? # => false
我建议你看看ActiveRecord Validations & Callbacks Rails guide。
通常,这些验证与ActiveRecord
ORM一起使用,但您可以在没有ActiveRecord的情况下使用它,因为您可以看到in this ActiveModel RailsCast。
因此,您只需要包含ActiveModel::Validations
。