ai fini di una nuova app Web, avrei bisogno nella mia pagina di registrazione (che è solo amministratore) solo un solo campo di posta elettronica.Password generata in modo casuale Rails 3.1
La cosa è che im totalmente nuovo a rotaie e quindi anche basi cose del genere sono per me davvero difficile ...
ho creato il mio autentificazione usando Railscast # 270 strega utilizza has_secure_password metodo. Per ora, tutto funziona alla grande, eccetto che non ho bisogno di tutta questa bullcrap ... Voglio anche usare Action Mailer per inviare la password generata al suo indirizzo email. Un esagono (8) la password sarebbe perfetto (ho visto SecureRandom ma sembra essere ammortizzate)
Users_Controller:
class UsersController < ApplicationController
skip_before_filter :is_connected?, :only => [:new, :create]
def new
@user = User.new
end
def create
@user = User.new(params[:user])
if @user.save
# Tell the Mailer to send a welcome Email after save
Mailer.confirm_email(@user).deliver
redirect_to root_url, :notice => "Signed up!"
else
render "new"
end
end
end
User_model:
class User < ActiveRecord::Base
attr_accessible :email
has_secure_password
validates_presence_of :password, :email, :on => :create
end
Per ora, in il mio punto di vista, ho 2 campi. Ma come ho detto prima, ne voglio solo uno. Mi piacerebbe continuare a usare has_secure_password che sembra offrire una buona sicurezza per quanto riguarda hash/sale.
La tua domanda "come posso impostare la password per il mio utente e inviarlo via email?" –
Fondamentalmente voglio scrivere qualcosa che generi una password e impostarla in una variabile per essere accessibile dalla mia vista mailer e che sarà memorizzata nel mio db come password_manifest. Non ho idea di come fare queste cose. –
OK, quindi ho fatto quello che ha detto Frederick Ha funzionato benissimo ma c'è un modo per farlo senza passare @random = SecureRandom.hex (8) alla vista? Perché non sapevo cosa fare così l'ho passato alla mia vista come hidden_field, quindi lo riutilizza nel mio metodo di creazione ... Quindi il suo controller> visualizza> controller per niente -_- –