Вы могли попробовать active_form ( http://github.com/cs/active_form/tree/master/lib/active_form.rb ) - просто ActiveRecord минус материал базы данных. Таким образом, можно использовать всю проверку AR, наполняют и рассматривают форму как Вы, был бы любая другая модель.
class MyForm < ActiveForm
validates_presence_of :name
validates_presence_of :graph_size, :if => # ...blah blah
end
form = MyForm.new(params[:form])
form.validate
form.errors
Похож на Вас, делают проверку в контроллере, пытаются поместить его в модель, это лучше подходит для такой вещи.