2010-12-01 3 views
2

J'ai une application Rails (2.3.8) où j'envoie des courriels en utilisant ActionMailer de mes contrôleurs, sans aucun problème.Les paramètres régionaux ne fonctionnent pas lorsqu'ils sont appelés à partir d'une tâche râteau

Cependant, j'ai créé une tâche rake à appeler à partir d'un Cronjob (dans Heroku). Lorsque ces e-mails sont envoyés, aucune modification des paramètres régionaux dans mes dates n'est effectuée.

J'ai googlé pour trouver n'importe quel type de solution, mais je ne pouvais pas.

Quelqu'un peut-il m'aider?

Merci.

Voici le 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 

méthode de modèle de l'utilisateur:

def deliver_task_diary 
    TaskMailer.deliver_task_diary(self) 
end 

la méthode dans le modèle TaskMailer:

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 

extrémité

partie de mon modèle de courrier électronique qui doesnt locale:

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

Comment vous définissez les paramètres régionaux dans votre contrôleur ? – pantulis

Répondre

1

Résolu.

Je ne savez pas comment si ce dernier est la meilleure façon, mais a déclaré que la Ive locale au très beging du modèle html email:

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