2012-03-22 42 views
18

我目前正在嘗試驗證沒有ActiveRecord::Base繼承的字段。Ruby on Rails:如何在沒有Active Record的情況下驗證模型?

我的模型將數據存儲在緩存服務器上,所以我不需要ActiveRecord。

無論如何,我想驗證模型的字段,就像我使用ActiveRecord(例如validates_numericality_of :quantity, :greater_than => 0)一樣?

我該怎麼做?

非常感謝您的幫助。

+0

我相信這是這個問題:http://stackoverflow.com/questions/315850/rails-model-without-database – 2012-03-22 05:23:58

回答

27

在Rails 3中,Active Model包含Active Record的非數據庫功能。

基本上,你需要包括ActiveModel::Validations,定義字段attr_accessor,使用initialize方法來初始化屬性,使他們非持續爲你的模型沒有保存到數據庫中。

通過這種方式,您可以對無模式模型和控制器進行驗證,就像您使用活動記錄一樣。這個http://railscasts.com/episodes/219-active-model上還有一個Railscast。

1

請查看我們的Veto gem而不是如果您正在尋找獨立的驗證紅寶石對象。它很輕量級,並且沒有依賴關係。ActiveModel可能會矯枉過正。

相關問題