Writing a simple accessor ... or so I thought

class User < ActiveRecord::Base   attr_reader :login

  def login=(new_login)     @login = new_login unless !new_record?   end end

Try this: def login=(new_login)   write_attribute( :login, new_login ) if new_record? end

For more info take a look at the "Overwriting default accessors" section of the ActiveRecord::Base documentation. http://api.rubyonrails.com/classes/ActiveRecord/Base.html

Aaron