2

REST APIを設計していて、リクエストパラメータの存在や長さなどを検証したいと考えています。

たとえば、次のようなことを検証したいと思います。

  • リクエストで提供された「名前」です
  • '名前'<200文字です
  • 'age'には数値がありますか
  • 提供されている不明なパラメータはありますか
  • 'name'が存在しない場合は、'customer_id'を指定する必要があります

次に、次のようなパラメータを確認します。

request.valid?

DataMapper(またはVirtus + Aequitas)などを使用することを考えています。しかし、DataMapperまたは別のORMには、私が必要としないほど多くの機能が付属しています。

これをどのように処理し、推奨できるORMを使用する場合(依存関係の数と必要な「検証コード」に基づいて)?

4

2 に答える 2

1

nameuse は、 の Rails 検証によって既に提供されていますage。参照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
于 2012-10-16T07:52:57.923 に答える
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をご覧になることをお勧めします。

通常、これらの検証は ORM で使用されますが、この ActiveModel RailsCast でActiveRecordわかるように、ActiveRecord なしで使用することもできます。したがって、.ActiveModel::Validations

于 2012-10-16T08:05:27.023 に答える