【问题标题】:RoR - Devise mailerRoR - 设计邮件
【发布时间】:2013-06-06 13:43:22
【问题描述】:

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

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

我怎样才能为这个用户随机生成一个密码,并给他发送一封包含他密码的电子邮件?

【问题讨论】:

    标签: ruby-on-rails devise


    【解决方案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
    

    Devise - Automatically generate password for users

    希望对您有所帮助!

    【讨论】:

      【解决方案2】:

      为用户随机生成密码

      在你的控制器中

      pwd = Devise.friendly_token[0,16]
      
      @user = User.new(params[:user])
      @user.password_confirmation = @user.password = pwd
      

      用他的密码发送电子邮件

      看看这个问题:Send an actionmailer email upon user registration in devise rails 3 application

      最终它会归结为:

       mail(:to => "#{user.email}", :subject => "Welcome to My Awesome Site, your password #{pwd}")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-01
        • 1970-01-01
        • 2011-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多