Rails 2.1 and validates_length_of

Hi,

I'm getting some weirdness when using validates_length_of and Rails 2.1

class User < ActiveRecord::Base   include Authentication   include Authentication::ByPassword   include Authentication::ByCookieToken

  validates_presence_of :login   validates_length_of :login, :within => 3..40   validates_uniqueness_of :login, :case_sensitive => false   validates_format_of :login, :with => RE_LOGIN_OK, :message => MSG_LOGIN_BAD

  validates_format_of :first_name, :last_name, :with => RE_NAME_OK, :message => MSG_NAME_BAD, :allow_nil => true   validates_length_of :first_name, :maximum => 50, :allow_nil => true   validates_length_of :last_name, :maximum => 50

  validates_presence_of :email   validates_length_of :email, :within => 6..100 #r@a.wk   validates_uniqueness_of :email, :case_sensitive => false   validates_format_of :email, :with => RE_EMAIL_OK, :message => MSG_EMAIL_BAD

  belongs_to :company   validates_existence_of :company

Pretty straightforward so far.

I jump into script/console, and things get weird.

record = User.new({ :login => 'quire', :email => 'quire@example.com', :password => 'quire69', :password_confirmation => 'quire69' })

=> #<User id: nil, login: "quire", first_name: nil, last_name: nil, email: "quire@example.com", crypted_password: nil, salt: nil, created_at: nil, updated_at: nil, remember_token: nil, remember_token_expires_at: nil, company_id: nil>

record.valid?

=> false

record.errors.full_messages

=> ["Company does not exist", "First name is too long (maximum is 50 characters)", "Last name is too long (maximum is 50 characters)"]

record.first_name

=> nil

By my reading of the documentation and the source, the :maximum and :minimum methods shouldn't flag, especially with :allow_nil set to true on the first_name field.

This just seems to basic to miss, so I want to make sure I'm not completely crazy before submitting a bug.

(OS X, Ruby 1.8.6 p110, Rails 2.1)

Thanks,

Andrew