def password=(pwd) @password = pwd return if pwd.blank? create_new_salt #self.hashed_password = Person.encrypted_password(self.password, self.salt) self.password = Person.encrypted_password(self.password, self.salt) end
This method is calling itself on the last line. Right before the final "end." It will continue to do this until it runs out of stack space and your program crashes.