Я полагаю, что чем больше ответов, тем лучше, так как это один из первых результатов в Google при поиске "моделей rails 3.1 без таблиц"
Я реализую то же самое, не используя ActiveRecord :: Base, включая ActiveRecord :: Validations
Основная цель состояла в том, чтобы заставить все работать в форме, и ниже я включил пример платежа, который нигде не будет сохранен, но все еще имеет возможность проверки с использованием проверок, которые мы все знаем и любим.
class Payment
include ActiveModel::Validations
attr_accessor :cc_number, :payment_type, :exp_mm, :exp_yy, :card_security, :first_name, :last_name, :address_1, :address_2, :city, :state, :zip_code, :home_telephone, :email, :new_record
validates_presence_of :cc_number, :payment_type, :exp_mm, :exp_yy, :card_security, :first_name, :last_name, :address_1, :address_2, :city, :state
def initialize(options = {})
if options.blank?
new_record = true
else
new_record = false
end
options.each do |key, value|
method_object = self.method((key + "=").to_sym)
method_object.call(value)
end
end
def new_record?
return new_record
end
def to_key
end
def persisted?
return false
end
end
Надеюсь, это кому-нибудь поможет, поскольку я потратил несколько часов, пытаясь понять это сегодня.