1

我正在使用带有 ruby​​ 1.9.3 的 rails 3.2 并设计 2.1.2。

我希望管理员使用用户名和电子邮件创建用户。

如何为该用户随机生成密码,并向他发送一封包含密码的电子邮件?

4

2 回答 2

1

首先,您应该需要由管理员为处理注册用户创建控制器。

假设您的控制器名称是registrations_controller.rb

这里是app/controller/registrations_controller.rb

 class RegistrationsController < Devise::RegistrationsController
 before_filter :resource_name

 def resource_name
  :user
 end

 def new
   @user = User.new
 end

 def create
    @user = User.new(params[:user])
    generated_password = Devise.friendly_token.first(6) #password length 6
    @user.password_confirmation = @user.password = generated_password
    if @user.save
      # Send Password Via Email
      UserMailer.password_send(@user).deliver
      redirect_to a_path
    else
      render action: "new"
    end
 end

这里是app/mailer/user_mailer.rb

class UserMailer < ActionMailer::Base
  default :from => "youremail@email.com"

   def password_send(user)
     @user = user
     mail(:to => user.email, :subject => "password", :from => "youremail@email.com")
   end
  end

这里是app/views/user_mailer/password_send.html.erb

   Email : @user.email<br/>
   Username : @user.username<br/>
   Password : @user.password

设计 - 自动为用户生成密码

希望这有帮助!

于 2013-06-06T16:34:07.223 回答
0

为用户随机生成密码

在您的控制器中

pwd = Devise.friendly_token[0,16]

@user = User.new(params[:user])
@user.password_confirmation = @user.password = pwd

用他的密码发送电子邮件

看看这个问题:在设计 rails 3 应用程序中用户注册时发送一封 actionmailer 电子邮件

最后它会归结为:

 mail(:to => "#{user.email}", :subject => "Welcome to My Awesome Site, your password #{pwd}")
于 2013-06-06T15:49:38.617 回答