Railscastに従って、スケジュールされた rake タスクをセットアップして、管理者ユーザーに電子メールを送信しようとしています。
desc 'Testing rake task to generate email'
task :overtime_report => :environment do
hospital_bookings = HospitalBooking.scoped
hospital_booking = hospital_bookings
user = User.where(:roles => :administrator)
if params[:format] == 'pdf'
hospital_bookings = hospital_bookings.where(:day => Date.today.beginning_of_month..Date.today.end_of_month)
end
respond_to do |format|
format.html
format.pdf do
render :pdf => "#{Date.today.strftime('%B')} Overtime Report",
:header => {:html => {:template => 'layouts/pdf.html.erb'}}
OvertimeMailer.overtime_pdf(user, hospital_booking).deliver
end
end
end
コントローラ
class HospitalBookingsController < ApplicationController
#load_and_authorize_resource
before_filter :admin_user, :only => [:index]
def index
@hospital_bookings = HospitalBooking.scoped
system "rake overtime_report Mail_ID=#{params[:id]} &"
flash[:notice] = 'Delivering Overtime Report'
end
私が正しい方向に向かっているのであれば、ちょっとしたガイダンスが必要です。