DBとは関係ないフォームの項目をバリデートする

2012年10月5日

[ruby]
class ActiveForm
include ActiveModel::Conversion
extend ActiveModel::Naming
include ActiveModel::Validations

def persisted?; false; end

def initialize(attributes = {})
attributes.each do |name, value|
send("#{name}=", value) rescue nil
end
end
end
</pre>

こんな感じのクラスを一つ準備して、あとはこれを継承して

[ruby]
class SearchForm < ActiveForm
attr_accessor :age
validates :points, :numericality => true
end
[/ruby]

という感じにする。

アンケート