0

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

私が正しい方向に向かっているのであれば、ちょっとしたガイダンスが必要です。

4

1 に答える 1