Hello 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 session[:user_id] = @user.id 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(len) #generate a random password consisting of strings and digits chars = ("a".."z").to_a + ("A".."Z").to_a + ("0".."9").to_a newpass = "" 1.upto(len) { |i| newpass << chars[rand(chars.size-1)]} return newpass 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. -- 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@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.