Many thanks. I understand it now much better.
Just an advice for other participants. I have used the :if directive in the
ActiveRecord validation definition for the :address not to validate existence
of this property when the object is created in the first form.
Ales
class User < ActiveRecord::Base
validates_presence_of :name, :age, :hobby,
:on => :create,
:message => "cannot be blank."
validates_presence_of :address,
:on => :update,
:message => "cannot be blank.",
:if => :address?
end
> ------------ Původní zpráva ------------
> Od: raul parolari <[EMAIL PROTECTED]>
> Předmět: Re: [rails-development] Re: 5526 - Action Controller Basics -
> Homework
> Datum: 02.11.2008 16:57:59
> ----------------------------------------
> > validation is called only when an object is persisted to the relational
> DB, never with object creation / modification in memory.
>
> u=User.new(:name => '', ....)
> u.valid?
> u.errors.on :name
>
> Validation is run, although there was no attempt to save to db.
>
> This is key to solve the exercise (in a graceful way)
>
> Raul
>
> 2008/11/2 Aleš Bednařík <[EMAIL PROTECTED]>
>
> >
> > Hi Petro and Raul,
> >
> > it was interesting for me to follow your conversation. I just want to be
> > sure if I understand the ActiveRecord validation correctly and need a
> > confirmation of the following:
> >
> > Validation is called only when an object is persisted to the relational DB,
> > never with object creation / modification in memory.
> > The :on parameter can have following three values:
> > :on => :create - is called only for persistence of a NEW object - creation
> > (memory -> database)
> > :on => :update - is called only for persistence of already earlier
> > persisted object - modification
> > :on => :save - is called in both situation described above
> >
> > Is that correct?
> >
> > By the way, my first approach was to store name, age and hobby separately
> > to the session. The idea with the object creation (in memory) and storing
> > the whole object seems to me very elegant.
> >
> > Ales
> >
> > > ------------ Původní zpráva ------------
> > > Od: raul parolari <[EMAIL PROTECTED]>
> > > Předmět: [rails-development] Re: 5526 - Action Controller Basics -
> > Homework
> > > Datum: 29.10.2008 15:45:46
> > > ----------------------------------------
> > > Hi, Pietro,
> > >
> > > > now I'm a better rails citizen ;-)
> > >
> > > Me too; I had no idea that we could do an "intermediate validation" (and
> > > without creating the object) using ActiveRecord. It was just a few emails
> > > back that I was trying to cast your interpretation of the requirements as
> > "*ad
> > > litteram*" (Lol!). Ad litteram my foot; you were just right.
> > >
> > > > If you happen to travel here in northern Italy...
> > >
> > > Thank you so much. I was born there (a bit up north from you, Tione di
> > > Trento); wine (not to mention food) is fantastic.
> > > As for the beer, one is waiting for me in Szczecin (Poland), from Pawell,
> > so
> > > I will be fine..:-).
> > >
> > > To more intelligent discussions (and fluids.. :-)
> > >
> > > Raul
> > >
> > >
> > > On Wed, Oct 29, 2008 at 1:23 AM, Pietro Maggi <[EMAIL PROTECTED]>
> > wrote:
> > >
> > > > On Wed, Oct 29, 2008 at 8:09 AM, raul parolari <[EMAIL PROTECTED]
> > >
> > > > wrote:
> > > > >
> > > > > yes, this is an interesting misunderstanding. When we study Ruby,
> > we
> > > > may
> > > > > have a class Player, and when we do:
> > > > >
> > > > > lionel = Player.new(:name => "messi", :team => "barcelona", ...)
> > > > >
> > > > > we say that we have created an object of the class Player.
> > > > >
> > > > > But it is different in ActiveRecord (AR); the word creation means
> > > > "creating
> > > > > in the database". AR does not care about much about our u=User.new();
> > but
> > > > it
> > > > > cares when we save that user u! that is the moment of the
> > "creation"...
> > > > >
> > > > [SNIP]
> > > >
> > > > Yep, I initially mixed them up. After a bit of reading I finally got
> > > > it and now I'm a better rails citizen ;-)
> > > >
> > > > Thanks again Raul
> > > > If you happen to travel here in norther Italy* I'll happily offer you
> > > > some tasty wine (the usual way of say how much someone appreciate your
> > > > help, it's to offer a beer but, hey, I'm Italian ;-).
> > > >
> > > > Pietro
> > > >
> > > >
> > > > * I'm here:
> > > >
> > >
> >
> http://maps.google.com/maps?f=q&hl=en&geocode=&q=lecco,+italy&sll=37.0625,-95.677068&sspn=49.310476,79.101563&ie=UTF8&g=lecco,+italy&t=h&ll=45.896699,9.30542&spn=0.682404,1.235962&z=10&iwloc=addr
> > > >
> > >
> > > >
> > >
> > >
> > >
> >
> > > >
> >
>
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "ruby-on-rails-programming-with-passion" group.
To unsubscribe from this group, send email to
[EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/ruby-on-rails-programming-with-passion?hl=en?hl=en
-~----------~----~----~----~------~----~------~--~---