Validations for non-ActiveRecord Model Objects


#1

Hi,

I just worked on getting validations for non-ActiveRecord model
objects working. I essentially implemented an ActiveForm object that
you can subclass for your own non-database form objects. The file is
available from my blog [1] and I wouldn’t mind some feedback on
whether my assumptions are right. It seems to work for me and makes it
much easier to write non-database bound forms.

[1]
http://www.realityforge.org/articles/2005/12/02/validations-for-non-activerecord-model-objects


Cheers,

Peter D.


#2

On 12/2/05, Peter D. removed_email_address@domain.invalid wrote:


Cheers,

Peter D.

Here’s my approach to the problem. Instead of making my own class and
reimplementing the validations, I just removed the code that grabs the
table info:

class Contact < ActiveRecord::Base
def self.columns() @columns ||= []; end
def self.column(name, sql_type = nil, default = nil, null = true)
columns << ActiveRecord::ConnectionAdapters::Column.new(name.to_s,
default, sql_type.to_s, null)
end

column :name, :string
column :city, :string
column :state, :string
column :phone, :string
column :email_address, :string

validates_presence_of :name, :email_address
end

It’s still technically a model, so you can call #save on it. But just
calling valid? works fine.

http://rails.techno-weenie.net/tip/2005/11/19/validate_your_forms_with_a_table_less_model


rick
http://techno-weenie.net


#3

Hi,

It turns out that there is a wiki page[1] that already describes this
technique. Who knew? :slight_smile: It is a little dated but I wish I had wiki’ed
before attempting this :wink:

[1]
http://wiki.rubyonrails.com/rails/pages/HowToUseValidationsWithoutExtendingActiveRecord

On 12/3/05, Peter D. removed_email_address@domain.invalid wrote:


Cheers,

Peter D.


Cheers,

Peter D.


#4

On 12/5/05, Peter D. removed_email_address@domain.invalid wrote:

Hi,

It turns out that there is a wiki page[1] that already describes this
technique. Who knew? :slight_smile: It is a little dated but I wish I had wiki’ed
before attempting this :wink:

[1] http://wiki.rubyonrails.com/rails/pages/HowToUseValidationsWithoutExtendingActiveRecord

I knew about that, but my version doesn’t mess with rails as much. I
prefer my 3 lines to set it up vs changes in the dark corners of the
dispatcher libs. YMMV


rick
http://techno-weenie.net