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

2012年10月5日

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

という感じにする。

アンケート