2012-03-22 13 views
18

私は現在、ActiveRecord::Baseの継承を持たないフィールドの検証を試みています。Ruby on Rails:アクティブレコードを持たないモデルの検証方法

私のモデルはキャッシュサーバにデータを保存するので、ActiveRecordは必要ありません。

とにかく、ActiveRecordを使用していた場合(たとえばvalidates_numericality_of :quantity, :greater_than => 0)、私はモデルのフィールドを検証したいと思いますか?

どうすればいいですか?

ありがとうございました。

+0

私はこれがその疑問だと信じています:http://stackoverflow.com/questions/315850/rails-model-without-database –

答えて

27

Rails 3では、アクティブモデルにはアクティブレコードのデータベース以外の機能が含まれています。

基本的には、を指定し、フィールドをattr_accessorと定義し、initializeメソッドを使用して属性を初期化し、モデルがデータベースに保存されていない場合は非永続化にします。

このようにして、アクティブレコードを使用している場合と同じように、テーブルレスモデルとコントローラで検証を行うことができます。このhttp://railscasts.com/episodes/219-active-modelには鉄道番組もあります。

1

ruby​​オブジェクトのスタンドアロン検証を探している場合は、代わりにVeto gemをご覧ください。それは軽量で、依存関係はありません。ActiveModelは過度のものかもしれません。

関連する問題