On Oct 10, 7:40 am, Luiz <[email protected]> wrote: > My table (postgres): > > CREATE TABLE user > ( > id serial NOT NULL, > name character varying(100) NOT NULL, > CONSTRAINT user_pkey PRIMARY KEY (id) > ) > > My model: > > class User< Sequel::Model(:user) > > end > > I tried: > > >> u = User.new > > => #<User #values={}> > > >> u.name = nil > > => Sequel::InvalidValue: nil/NULL is not allowed for the name column > > Why it's validating before I call u.valid? ? > I think it should work like this: > > >> u = User.new > > => #<User #values={}> > > >> u.name = nil > >> u.valid? > > => false
Sequel typecasts on assignment and raises errors when the typecasting fails by default. It considers the assignment of nil to a column that doesn't allow NULL to be a typecasting error. You can change the default behavior by setting User.raise_on_typecast_failure = false. Then it will not raise an error, and you can add a validation to check for the nil values. Jeremy --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sequel-talk" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/sequel-talk?hl=en -~----------~----~----~----~------~----~------~--~---
