class ModelWithoutDatabase
def save() raise NotImplementedError end
def save!() raise NotImplementedError end
def update_attribute() raise NotImplementedError end
def new_record?() true end
include ActiveRecord::Validations
def initialize(attributes = nil)
self.attributes = attributes
end
def attributes=(new_attributes)
return unless new_attributes
new_attributes.each do |k, v|
k = "#{k}="
send(k, v) if respond_to?(k)
end
end
end
class Foo < ModelWithoutDatabase
attr_accessor :my_attr
validates_presence_of :my_attr
end
class FooController < ApplicationController
def bar
foo = Foo.new params[:foo]
do_something if foo.valid?
end
end