- #users_controller.rb
- class UsersController < ApplicationController
- before_action :set_user, only: [:show, :edit, :update, :destroy]
- def index
- @users = User.all
- end
- def show
- end
- def new
- @user = User.new
- end
- def edit
- end
- def create
- @user = User.new(user_params)
- respond_to do |format|
- if @user.save
- # Tell the UserMailer to send a welcome email after save
- UsersWorker.perform_at(2.minutes.from_now, @user)
- format.html { redirect_to root_path }
- format.json { render :show, status: :created, location: @user }
- else
- format.html { render :new }
- format.json { render json: @user.errors, status: :unprocessable_entity }
- end
- end
- end
- private
- def set_user
- @user = User.find(params[:id])
- end
- def user_params
- params.require(:user).permit(:name, :email, :note, :datetime)
- end
- end
- --------------------------------------------------------------------------
- #users_worker.rb
- class UsersWorker
- include Sidekiq::Worker
- def perform(user)
- UsersMailer.remind_email(@user).deliver_later
- end
- end
- --------------------------------------------------------------------------
- #users_mailer.rb
- class UsersMailer < ApplicationMailer
- default from: 'mailme'
- def remind_email(user)
- user = params[:user]
- mail(to: user.email, subject: "Sent from Mailme" )
- end
- end