2010-12-01 5 views
2

Ich habe eine Rails-App (2.3.8), wo ich E-Mails mit ActionMailer von meinen Controllern ohne Probleme sende.Locale funktioniert nicht, wenn sie von einer Rake-Task aufgerufen wird

Allerdings habe ich eine Rake-Aufgabe erstellt, die von einem Cronjob (in Heroku) aufgerufen werden soll. Wenn diese E-Mails gesendet werden, werden in meinen Daten keine Gebietsschemaumwandlungen vorgenommen.

Ich habe gegoogled, irgendeine Lösung zu finden, aber konnte nicht.

Jeder kann mir helfen?

Danke. Hier

ist der Code:

cron.rake:

desc 'This task is called by the Heroku cron add-on' 
task :cron => :environment do 
puts 'Sending diary...' 
hollydays = [6,0] #weekend  
unless hollydays.member?(Time.zone.now.wday) #if is NOT a weekend 
User.all.each do |user| 
    user.deliver_task_diary 
end 
end 
puts 'done.' 
end 

Benutzermodell Methode:

def deliver_task_diary 
    TaskMailer.deliver_task_diary(self) 
end 

das Verfahren in TaskMailer Modell:

def task_diary(user) 
    next_five_tasks = user.next_five_tasks 
    last_five_tasks = user.last_five_tasks 

    recipients "#{user.name} <#{user.email}>" 
    from  "My site <[email protected]>" 
    subject "Your daily tasks." 
    sent_on Time.zone.now 
    body  :user => user, :next_five_tasks => next_five_tasks, :last_five_tasks => last_five_tasks 

Ende

Teil meiner E-Mail-Vorlage, die locale spielt keine:

<%=l task.estimated_delivery_date, :format => :short %> 
+0

Wie werden Sie das Gebietsschema in der Reglereinstellung ? – pantulis

Antwort

1

gelöst.

Ich weiß nicht, ob Dies ist die beste Art und Weise, aber Ive erklärte nur das Gebietsschema an dem sehr begeht des E-Mail-HTML-Template:

<% I18n.locale = "pt-BR" %>