I have a user table in my database and what I wish to do is have a random password generated for each user on create which is then sent to their email address. I was wondering how I would assign the random password. I have the following in my view: <p> <div id="p1"><%= t(''.username'')%></div> <%= f.text_field :username %> </p> <p> <div id="p1"><%= t(''.email'')%></div> <%= f.text_field :email %> </p> <p class="button"><%= f.submit ''Create Account'' %></p> The following in my controller: def create @user = User.new(params[:user]) respond_to do |format| if @user.save Notifier.user_created(@user).deliver format.html { redirect_to @user, notice: ''User was successfully created.'' } format.json { render json: @user, status: :created, location: @user } else format.html { render action: "new" } format.json { render json: @user.errors, status::unprocessable_entity } end end end And I have the following in my user model: attr_accessor :password before_save :encrypt_password def encrypt_password if password.present? self.password_salt = BCrypt::Engine.generate_salt self.password_hash = BCrypt::Engine.hash_secret(password, password_salt) end end def self.random_string(length=8) chars = ''abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ23456789'' password = '''' length.times { |i| password << chars[rand(chars.length)] } password end def self.authenticate(email, password) user = find_by_email(email) if user && user.password_hash =BCrypt::Engine.hash_secret(password, user.password_salt) user else nil end end I will have to remove my if password.present? line because it won''t be present but I have the random string code, I just need to assign it to the hash/salt. I tried changing the following: def encrypt_password if self.save self.password_salt = String.random_string self.password_hash = encrypt_password(@password) end end But I get a stack too deep error. -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.